|
使用 LINQ 進行數據轉換
語言集成查詢 (LINQ) 不僅可用于檢索數據,而是還是一個功能強大的數據轉換工具。通過使用 LINQ 查詢,您可以將源序列用作輸入,并采用多種方式修改它以創建新輸出序列。您可以通過排序和分組來修改序列本身,而不必修改元素本身。但是,LINQ 查詢最強大的功能可能在于它能夠創建新類型。這一功能在 select 子句中實現。例如,可以執行下列任務:
- 將多個輸入序列合并到具有新類型的單個輸出序列中。
- 創建其元素只包含源序列中的各個元素的一個或幾個屬性的輸出序列。
- 創建其元素包含對源數據執行的操作結果的輸出序列。
- 創建不同格式的輸出序列。例如,您可以將 SQL 行或文本文件的數據轉換為 XML。
這只是幾個示例。當然,可以采用多種方式將這些轉換組合在同一查詢中。另外,一個查詢的輸出序列可用作新查詢的輸入序列。
將多個輸入聯接到一個輸出序列
可以使用 LINQ 查詢來創建包含多個輸入序列的元素的輸出序列。下面的示例演示如何組合兩個內存中的數據結構,但組合來自 XML 或 SQL 或數據集源的數據時可應用相同的原則。假定下面兩種類類型:
class Student
{
public string First { get; set; }
public string Last {get; set;}
public int ID { get; set; }
public string Street { get; set; }
public string City { get; set; }
public List<int> Scores;
}
class Teacher
{
public string First { get; set; }
public string Last { get; set; }
public int ID { get; set; }
public string City { get; set; }
}
選擇各個源元素的子集
選擇源序列中的各個元素的子集有兩種主要方法:
1、若要只選擇源元素的一個成員,請使用點運算。在下面的示例中,假定 Customer 對象包含幾個公共屬性,其中包括名為 City 的字符串。在執行此查詢時,此查詢將生成字符串輸出序列。
var query = from cust in Customers
select cust.City;
it知識庫:使用 LINQ 進行數據轉換,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。