c# – 使用LINQ进行选择
发布时间:2020-12-15 19:36:25 所属栏目:百科 来源:网络整理
导读:我有一个示例xml文件,如下所示: 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" B
我有一个示例xml文件,如下所示:
<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> 我需要收集所有的书籍名称和书价,并传递给其他方法.现在,我将所有图书名称和图书价格单独分成两个不同的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(); 我创建了一个文本文件并将其发送回调用函数(在文本文件中输出这些结果是必需的,文本文件有两个字段bookname和bookprice). 要写入文本文件,请使用以下代码: for(int i = 0; i < BookNameList.Count; i++) { //write BookNameList[i] to file // Write BookPriceList[i] to file } 我对这种方法感觉不太好.假设由于任何原因两个列表的大小不同.现在我不考虑这一点,我觉得使用foreach更有效(我可能错了).是否可以从LINQ中读取数据结构(具有两个属性名称和价格)的条目?然后我可以使用foreach轻松迭代该数据结构的列表. 我正在使用C#进行编程. 谢谢, [编辑]:感谢大家的超快反应,我选择了第一个答案. 解决方法
选择:
var books = root.Elements("Category").Select(x => new { Name = (string)x.Attribute("BookName"),Price = (string)x.Attribute("BookPrice") }).ToList(); 循环: foreach (var book in books) { // do something with // book.Name // book.Price } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |