亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

List<>中Find的用法小結(jié)

 更新時間:2014年01月21日 10:11:13   作者:  
本篇文章主要是對List<>中Find的用法進行了總結(jié)介紹,需要的朋友可以過來參考下,希望對大家有所幫助

I've been looking for help on how to find objects in Generics with List.Find() method .... and ... take a look what I have found.
In the follow example, I created a simple class:

復(fù)制代碼 代碼如下:

public class Person
{
       private int _id;
       private string _name;

       public int ID {  get{ return _id;} set{ _id = value;}}
       public int Name {  get{ return _name;} set{ _name= value;}}

       public Person(int id, string name)
       {
             _id = id;
             _name = name;
       }
}


In the example, there's a simple class with two private attributes. Now we're going to create a typed List of this object and take advantage of the Find() method
復(fù)制代碼 代碼如下:

public void CreateAndSearchList()
{
      //create and fill the collection
      List<Person> myList = new List<Person>();
      myList.Add(new Person(1, "AndreySanches"));
      myList.Add(new Person(2, "AlexandreTarifa"));
      myList.Add(new Person(3, "EmersonFacunte"));

     //find a specific object
     Person myLocatedObject = myList.Find(delegate(Person p) {return p.ID == 1; });
}


備注:在list和array集合中搜索元素經(jīng)常使用該方法,主要技術(shù)是泛型委托

list用法注意:如果增加一個對象,必須重新new一個對象,看下面的例子:

復(fù)制代碼 代碼如下:

person p=new pewson();
for(int i=0;i<5;i++)
{
p.ID=i;
p.Name="xxxx";
list.add(p);
}

for(int i=0;i<5;i++)
{
person p=new person();
p.ID=i;
p.Name="xxxx";
list.add(p);
}


上面有區(qū)別嗎?在輸出list的值是有區(qū)別了,第一個list里面存放的都是一樣的,結(jié)果和最后一個一樣,都是同一個人對象,第二個list達到預(yù)期的效果,存儲不同的人對象。這是為什么?原因很簡單,一個list對象中存儲的都是對一個共有的對象進行引用,所以以最后改變的值為準。

對象的排序:本文主要闡述對存儲datatable的list進行按TableName排序

1、新建一個sort類

復(fù)制代碼 代碼如下:

public class SceneSort:IComparer<DataTable>
    {
       public int Compare(DataTable obj1, DataTable obj2)
       {
           int tableNameLength1;
           int tableNameLength2;
           if (obj1 == null)
           {
               if (obj2 == null)
                   return 0;
               else
                   return -1;
           }
           else
           {
               if (obj2 == null)
                   return 1;
               else
               {
                   tableNameLength1=obj1.TableName.Length;
                   tableNameLength2=obj2.TableName.Length;
                   if (Convert.ToInt32(obj1.TableName.Substring(2,tableNameLength1-2))>Convert.ToInt32(obj2.TableName.Substring(2,tableNameLength2-2)))
                       return 1;                            //大于返回1
                   else if (Convert.ToInt32(obj1.TableName.Substring(2,tableNameLength1-2))<Convert.ToInt32(obj2.TableName.Substring(2,tableNameLength2-2)))
                       return -1;                           //小于返回-1
                   else
                       return 0;                            //相等返回0
               }
           }

       }


2 排序:
List<DataTable> ldt = new List<DataTable>();
SceneSort ss=new SceneSort ();
tablelist.sort(ss);即可對list進行排序;

您可能感興趣的文章:

相關(guān)文章

  • C# WinForm創(chuàng)建Excel文件的實例

    C# WinForm創(chuàng)建Excel文件的實例

    下面小編就為大家?guī)硪黄狢# WinForm創(chuàng)建Excel文件的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • C#清除WebBrowser中Cookie緩存的方法

    C#清除WebBrowser中Cookie緩存的方法

    這篇文章主要介紹了C#清除WebBrowser中Cookie緩存的方法,涉及C#針對WebBrowser控件的操作技巧,非常簡單實用,需要的朋友可以參考下
    2016-05-05
  • WebService 的簡單封裝接口調(diào)用方法

    WebService 的簡單封裝接口調(diào)用方法

    這篇文章主要介紹了WebService 的簡單封裝接口調(diào)用方法,主要是通過簡單的sql語句來查詢數(shù)據(jù)庫,從而返回dataset,十分簡單實用,有需要的小伙伴可以參考下。
    2015-06-06
  • 深入多線程之:Wait與Pulse的使用詳解

    深入多線程之:Wait與Pulse的使用詳解

    本篇文章是對Wait與Pulse的使用進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C#訪問C++動態(tài)分配的數(shù)組指針(實例講解)

    C#訪問C++動態(tài)分配的數(shù)組指針(實例講解)

    下面小編就為大家分享一篇C#訪問C++動態(tài)分配的數(shù)組指針(實例講解),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • C#中截取字符串的的基本方法詳解

    C#中截取字符串的的基本方法詳解

    這篇文章主要介紹了C#中截取字符串的的基本方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Unity3D開發(fā)之獲取所有的子對象的方法詳解

    Unity3D開發(fā)之獲取所有的子對象的方法詳解

    這篇文章主要為大家詳細介紹了三種Unity3D中獲取所有的子對象(child)的方法,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-01-01
  • C#中的Linq?To?XML講解

    C#中的Linq?To?XML講解

    本文詳細講解了C#中的Linq?To?XML,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C#線程 BeginInvoke和EndInvoke使用方法

    C#線程 BeginInvoke和EndInvoke使用方法

    本文開始C#線程系列講座之一,即BeginInvoke和EndInvoke的使用方法,需要的朋友可以參考下
    2013-05-05
  • 詳解C#獲取特定進程CPU和內(nèi)存使用率

    詳解C#獲取特定進程CPU和內(nèi)存使用率

    本篇文章主要介紹詳解C#獲取特定進程CPU和內(nèi)存使用率,非常具有實用價值,需要的朋友可以參考下。
    2016-11-11

最新評論