C#のリストの使用

、リストの並べ替え

  ソートカスタムコンパレータと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 == 27ORDERBY 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>に変換することができます。

 

おすすめ

転載: www.cnblogs.com/peterYong/p/10881979.html