|
使用 LINQ 進行數(shù)據(jù)轉(zhuǎn)換
語言集成查詢 (LINQ) 不僅可用于檢索數(shù)據(jù),而是還是一個功能強大的數(shù)據(jù)轉(zhuǎn)換工具。通過使用 LINQ 查詢,您可以將源序列用作輸入,并采用多種方式修改它以創(chuàng)建新輸出序列。您可以通過排序和分組來修改序列本身,而不必修改元素本身。但是,LINQ 查詢最強大的功能可能在于它能夠創(chuàng)建新類型。這一功能在 select 子句中實現(xiàn)。例如,可以執(zhí)行下列任務(wù):
- 將多個輸入序列合并到具有新類型的單個輸出序列中。
- 創(chuàng)建其元素只包含源序列中的各個元素的一個或幾個屬性的輸出序列。
- 創(chuàng)建其元素包含對源數(shù)據(jù)執(zhí)行的操作結(jié)果的輸出序列。
- 創(chuàng)建不同格式的輸出序列。例如,您可以將 SQL 行或文本文件的數(shù)據(jù)轉(zhuǎn)換為 XML。
這只是幾個示例。當然,可以采用多種方式將這些轉(zhuǎn)換組合在同一查詢中。另外,一個查詢的輸出序列可用作新查詢的輸入序列。
將多個輸入聯(lián)接到一個輸出序列
可以使用 LINQ 查詢來創(chuàng)建包含多個輸入序列的元素的輸出序列。下面的示例演示如何組合兩個內(nèi)存中的數(shù)據(jù)結(jié)構(gòu),但組合來自 XML 或 SQL 或數(shù)據(jù)集源的數(shù)據(jù)時可應(yīng)用相同的原則。假定下面兩種類類型:
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 的字符串。在執(zhí)行此查詢時,此查詢將生成字符串輸出序列。
var query = from cust in Customers
select cust.City;
it知識庫:使用 LINQ 進行數(shù)據(jù)轉(zhuǎn)換,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。