加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读