、リストの並べ替え
ソートカスタムコンパレータとLINQのを使用して
クラスPersion { 公共 の文字列名。 公共 int型の年齢; } // 自定义ソート方法 プライベート 静的 無効sortListClass() { Persion P1 = 新しい Persion(){名= " huyong "、年齢= 27 }; Persion P2 = 新しい Persion(){NAME = " tansha "、年齢= 25 }。 一覧 <Persion> listPersion = 新しいリスト<Persion>(); listPersion.Add(P1)。 listPersion.Add(P2)。 listPersion.Sort(sortage)。 foreachの(VARの項目でlistPersion) { Console.WriteLineを(item.name + " :" + item.age)。 } } 静的 INT sortage(Persion X、PersionのY) { 場合(x.age <y.age)リターン - 1。 // 按年齢从大到小降序排列 他の 場合(== y.age x.age)リターン 0 ; 他の リターン 1 。 } // LINQ方法 プライベート 静的 無効sortLinq() { Persion p1の = 新しい Persion(){名= " huyong "、年齢= 27 }; Persion P2 = 新しい Persion(){NAME = " tansha "、年齢= 25 }。 PersionのP3 = 新しい Persion(){名= " tansha "、年齢= 27}。 一覧 <Persion> listPersion = 新しいリスト<Persion> (); listPersion.Add(P1)。 listPersion.Add(P2)。 listPersion.Add(P3)。 VAR lList = から T に listPersion (t.age == 27)ORDERBY t.name昇順セレクトT。 foreachの(VARの項目でlList) { Console.WriteLineを(item.name + " :" + item.age)。 } }
第二に、1つのリストリストに2のLINQと
// LINQ 2つの合成リスト、同じフィールドに従って プライベート 静的 ボイドmergeList() { persionのP1 = 新しい新しい persion(){名称= " HY "、省= " JX " }; persionのP2 = 新しい新しい persion(){名前= " tansha "、省= " HN " }; persionのP3 = 新しい新しい persion(){名前は= " HT "、省= " Gdの" }。 一覧新しいです<Persion> listPersion = 新しいリスト<Persion> (); listPersion.Add(P1)。 listPersion.Add(P2)。 listPersion.Add(P3)。 Persion P11 = 新しい Persion(){名称= " HY "、年齢= 23、性別= " 男" }。 Persion P21 = 新しい Persion(){NAME = " tansha "、年齢= 12、性別= " 女" }。 HT "、年齢= 7、性別= " 男" }。 一覧 <Persion> listPersion2 = 新しいリスト<Persion> (); listPersion2.Add(P11)。 listPersion2.Add(P21)。 listPersion2.Add(P31)。 // LINQ合并两个リスト、根据某一相同字段 するvarリスト= から PP1 でlistPersion PP2参加中pp1.nameにlistPersion2をpp2.nameに等しい 選択 新しいPersionを { 名前 = pp1.name、 州 = pp1.province、 年齢 = pp2.age、 性別 = pp2.sex }; foreachの(VARの項目にリスト) { Console.WriteLineを(item.name + " :" + item.age + " :" + item.sex + " :" + item.province)。 } }
第三に、上のリストの操作内のデータと保存
。。lists.Where(Q => q.SellChannelId ==((INT)SellChannelType.PB).ToString())ToListメソッド()のForEach(Q => q.index = 10)。
四、リスト<T>のIQueryableに<T>
これは、直接変換することはできません、
IQueryableクエリデータベース側、
メモリ内のIEnumerableをクエリ。
後者をサポートするために、リスト<T>。list.AsQueryable <T>に変換することができます。