C((zhi LIQ)の基本的な使い方例
LINEは何ですか?
LINE QはLanguage Integrated Query(言語統合クエリの略語)であり、マイクロソフトはその記述を説明する。
言語統合クエリ(LINQ)は、照会機能を直接C(嚖言語)に統合した一連の技術を総称しています。
基本的な使い方は何ですか?
(今は基本的な使い方しかできません。)
LINEクエリの操作は三つの異なる操作で構成されています。データソース を取得する。クエリーを作成する クエリーの実行
私が勉強する時に使う小さな例を使ってデモします。
二つのデータソースがあります。武林の達人の集合と武林の絶学の集合です。
私は二つの集合を使っていますが、実際には集合だけでなく、データソースとして利用できます。
マイクロソフトの公式文書によると、
上記の例では、データソースは1つの配列であり、したがって、一般的なIEnumerable<T>インターフェースを暗黙的にサポートする。この事実は、データソースがLINEで照会できることを意味する。
私の例を言えば、二つの種類が実現されました。
MatialArtsMasterは武術界の達人を表しています。
ひまわりの花の宝典を修練する武術界の達人を調べます。
範囲変数はforeachサイクルの反復変数のようですが、クエリー式では本当に反復が発生しません。クエリーを実行すると、範囲変数は、customers内の各連続要素の参照として作用します。
この書き方はSQL文とよく似ています。論理機能も基本的に同じですので、SQLができたら分かりやすいです。
拡張方法
このような標準的な書き方の他に、データソースの拡張方法によってLINEクエリを実現することができます。一番わかりやすい方法はwhere()です。
すべての修練レベルが8より大きい武術界の達人を調べたい場合:
を選択します。
最後に
LINQは強力な技術です。私はLINQの知識を少しだけ理解しました。勉強を続けるのが長続きの道です。
締め括りをつける
ここで、Cの基本的な使い方について紹介します。Cの基本的な使い方については、以前の文章を検索したり、次の関連記事を見たりしてください。これからもよろしくお願いします。
LINE QはLanguage Integrated Query(言語統合クエリの略語)であり、マイクロソフトはその記述を説明する。
言語統合クエリ(LINQ)は、照会機能を直接C(嚖言語)に統合した一連の技術を総称しています。
基本的な使い方は何ですか?
(今は基本的な使い方しかできません。)
LINEクエリの操作は三つの異なる操作で構成されています。
二つのデータソースがあります。武林の達人の集合と武林の絶学の集合です。
私は二つの集合を使っていますが、実際には集合だけでなく、データソースとして利用できます。
マイクロソフトの公式文書によると、
上記の例では、データソースは1つの配列であり、したがって、一般的なIEnumerable<T>インターフェースを暗黙的にサポートする。この事実は、データソースがLINEで照会できることを意味する。
私の例を言えば、二つの種類が実現されました。
MatialArtsMasterは武術界の達人を表しています。
//
class MatialArtsMaster
{
public int ID { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public string Menpai { get; set; }
public string Kongfu { get; set; }
public int Level { get; set; }
public override string ToString()
{
return string.Format("id:{0},name:{1},age:{2},menpai:{3},kongfu:{4},level:{5}", this.ID, this.Name, this.Age, this.Menpai, this.Kongfu, this.Level);
}
}
Kongfuは武林の絶学を表しています。
//
class Kongfu
{
public int Id { get; set; }
public string Name { get; set; }
public int Power { get; set; }
public Kongfu() { }
public Kongfu(int id, string name, int power)
{
Id = id;
Name = name;
Power = power;
}
public override string ToString()
{
return string.Format("Id:{0},Name:{1},Power:{2}", this.Id, this.Name, this.Power);
}
}
次に二つのセットを塗りつぶします。
{
var MasterList = new List<MatialArtsMaster>
{
new MatialArtsMaster(){ID=001,Name=" ",Age=18,Menpai=" ",Kongfu=" ",Level=9},
new MatialArtsMaster(){ID=002,Name=" ",Age=70,Menpai=" ",Kongfu=" ",Level=10},
new MatialArtsMaster(){ID=003,Name=" ",Age=22,Menpai=" ",Kongfu=" ",Level=10},
new MatialArtsMaster(){ID=004,Name=" ",Age=50,Menpai=" ",Kongfu=" ",Level=1},
new MatialArtsMaster(){ID=005,Name=" ",Age=35,Menpai=" ",Kongfu=" ",Level=10},
new MatialArtsMaster(){ID=006,Name=" ",Age=23,Menpai=" ",Kongfu=" ",Level=7},
new MatialArtsMaster(){ID=007,Name=" ",Age=50,Menpai=" ",Kongfu=" ",Level=8},
new MatialArtsMaster(){ID=008,Name=" ",Age=23,Menpai=" ",Kongfu=" ",Level=10},
new MatialArtsMaster(){ID=009,Name=" ",Age=23,Menpai=" ",Kongfu=" ",Level=8},
};
var kungfuList = new List<Kongfu>()
{
new Kongfu(){Id=1,Name=" ",Power=90},
new Kongfu(){Id=2,Name=" ",Power=95},
new Kongfu(){Id=3,Name=" ",Power=100},
new Kongfu(){Id=4,Name=" ",Power=100},
new Kongfu(){Id=5,Name=" ",Power=100},
};
続いて検索します。基本的なLINQクエリの操作は主にfrom、in、select、whereキーワードによって実現されます。たとえば:ひまわりの花の宝典を修練する武術界の達人を調べます。
var res = from master in MasterList
where master.Kongfu == " "
select master;
foreach(var temp in res)
{
Console.WriteLine(temp.ToString());
}
//id: 4,name: ,age: 50,menpai: ,kongfu: ,level: 1
//id: 5,name: ,age: 35,menpai: ,kongfu: ,level: 10
//id: 6,name: ,age: 23,menpai: ,kongfu: ,level: 7
武林の達人の名前を調べます。
var res = from master in MasterList
select master.Name;
foreach(var temp in res)
{
Console.WriteLine(temp.ToString());
}
//
//
//
//
//
//
//
//
//
マイクロソフトの公式はfromキーワードの後のその変数を範囲変数と呼びます。範囲変数はforeachサイクルの反復変数のようですが、クエリー式では本当に反復が発生しません。クエリーを実行すると、範囲変数は、customers内の各連続要素の参照として作用します。
この書き方はSQL文とよく似ています。論理機能も基本的に同じですので、SQLができたら分かりやすいです。
拡張方法
このような標準的な書き方の他に、データソースの拡張方法によってLINEクエリを実現することができます。一番わかりやすい方法はwhere()です。
すべての修練レベルが8より大きい武術界の達人を調べたい場合:
var res = MasterList.Where(master => master.Level > 8);
foreach(var temp in res)
{
Console.WriteLine(temp.ToString());
}
//id: 1,name: ,age: 18,menpai: ,kongfu: ,level: 9
//id: 2,name: ,age: 70,menpai: ,kongfu: ,level: 10
//id: 3,name: ,age: 22,menpai: ,kongfu: ,level: 10
//id: 5,name: ,age: 35,menpai: ,kongfu: ,level: 10
//id: 8,name: ,age: 23,menpai: ,kongfu: ,level: 10
拡張方法はまだたくさんあります。Select、SelectMany、Join、Orderbyなどです。彼らの具体的な使い方はマイクロソフト公式文書-拡張方法を参照してください。を選択します。
最後に
LINQは強力な技術です。私はLINQの知識を少しだけ理解しました。勉強を続けるのが長続きの道です。
締め括りをつける
ここで、Cの基本的な使い方について紹介します。Cの基本的な使い方については、以前の文章を検索したり、次の関連記事を見たりしてください。これからもよろしくお願いします。