程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Linq學習(1) 概述(2)

Linq學習(1) 概述(2)

編輯:關於C語言

初識化集合:

這進行類型轉換。

ArrayList list;
list = new ArrayList();
list.Add(new Employee("Zxjay", 20, "010-123456"));
list.Add(new Employee("Andy", 30, "020-123456"));
list.Add(new Employee("Bill", 50, "010-3456789"));
list.Add(new Employee("Lee", 40, "0532-234567"));

排序:

需實現IComparer接口。

class SortArrayList : IComparer
{
  public int Compare(object x, object y)
  {
    Employee a = x as Employee;
    Employee b = y as Employee;
    return a.Name.CompareTo(b.Name);
  }
}
list.Sort(new SortArrayList());

遍歷每個元素取得符合條件的元素放到新的集合:

這裡也進行類型轉換。ArrayList selectedList = new ArrayList();
foreach (object obj in list)
{
  Employee emp = obj as Employee;
  if (emp != null && emp.Phone.StartsWith("010") && emp.Age < 50)
  {
    selectedList.Add(emp);
  }
}

輸出集合元素:

這裡也進行類型轉換。

private void ShowList(ArrayList list)
{
  Console.WriteLine("{0,-20:G}{1,-5:G}{2}", "Name", "Age", "Phone");
  foreach (object obj in list)
  {
    Employee emp = obj as Employee;
    if (emp != null)
    {
      Console.WriteLine("{0,-20:G}{1,-5:G}{2}", emp.Name, emp.Age, emp.Phone);
    }
  }
}

.Net 2.0時代

加入了泛型和匿名方法,代碼量減少,邏輯清晰了許多,編譯期間強類型檢查和去掉了強制類型轉換及裝箱、拆箱操作。

定義實體類跟.Net 1.1時代一樣。

排序選擇直接用匿名方法實現:

list.Sort(
  delegate(Employee x, Employee y)
  {
    return x.Name.CompareTo(y.Name);
  }
  );
List<Employee> listBeijing = list.FindAll(
  delegate(Employee emp)
  {
    return emp.Phone.StartsWith("010") && emp.Age < 50;
  }
  );

輸出集合元素:

這裡去掉了強制類型轉換。

private void ShowList(IList<Employee> list)
{
  Console.WriteLine("{0,-20:G}{1,-5:G}{2}", "Name", "Age", "Phone");
  foreach (Employee emp in list)
  {
    Console.WriteLine("{0,-20:G}{1,-5:G}{2}", emp.Name, emp.Age, emp.Phone);
  }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved