我有一個示例XML文件看起來像這樣:選擇使用LINQ
<Books>
<Category Genre="Fiction" BookName="book_name" BookPrice="book_price_in_$" />
<Category Genre="Fiction" BookName="book_name" BookPrice="book_price_in_$" />
<Category Genre="NonFiction" BookName="book_name" BookPrice="book_price_in_$" />
<Category Genre="Children" BookName="book_name" BookPrice="book_price_in_$" />
</Books>
我需要收集所有書名和書的價格,並傳遞給其他方法。現在,我得到的所有的書的名字和書籍的價格seperately成兩個不同的List<string>
使用以下命令:
List<string>BookNameList = root.Elements("Category").Select(x => (string)x.Attribute("BookName")).ToList();
List<string>BookPriceList = root.Elements("Category").Select(x => (string)x.Attribute("BookPrice")).ToList();
我創建一個文本文件,並將其發送回調用函數(stroing這些結果在一個文本文件一個要求,文本文件有兩個字段bookname和bookprice)。
要寫入文本文件是使用下面的代碼:
for(int i = 0; i < BookNameList.Count; i++)
{
//write BookNameList[i] to file
// Write BookPriceList[i] to file
}
我有點不感覺良好,這種方法。假設由於任何原因,這兩個列表的大小不一樣。現在我不考慮這一點,我覺得使用foreach
更有效率(我可能錯了)。是否可以從LINQ中將這兩個條目讀入數據結構(具有兩個屬性名稱和價格)?那麼我可以用foreach輕鬆地遍歷該數據結構的列表。
我正在使用C#進行編程。
感謝,
[編輯]:感謝大家的超快速反應,我選擇我所看見的第一個答案。
如果您使用.NET 4,則可以將它們全部放入Tuple中。 – R0MANARMY 2010-06-24 17:29:26
耶,應該是bookPrice,(複製粘貼錯誤),我正在使用.Net 3.5 – dsilva 2010-06-24 17:30:41