gpt4 book ai didi

c# - 如何根据条件使用 FROM..SELECT 选择 Linq 元素?

转载 作者:行者123 更新时间:2023-11-30 21:07:51 26 4
gpt4 key购买 nike

我正在使用 from..select linq 查询从 XML 文件中读取数据,数据量很大。我能读取的最大数据集是 1100 行,每行包含 100 个字符。这会导致我的手机挂起和应用程序崩溃。在 Emulator 上,它工作正常,尽管加载需要相当长的时间。

现在我想要的是基于一些条件,我希望在查询中包含数据元素。例如,我现在拥有的是...

 var dataSet = from r in something.Elements("chapter")
select new dictChapter{
Name = r.Attribute("Name").Value,
Desc1 = r.Attribute("Description1").Value,
Desc2 = r.Attribute("Description2").Value,
Desc3 = r.Attribute("Description3").Value
};
ListBox.DataContext = dataSet;

但我想根据设置选择描述。我想要类似的东西(我知道它不起作用,但我想解释我想做什么)

 var dataSet = from r in something.Elements("chapter")
select new dictChapter{
Name = r.Attribute("Name").Value,
if (ShowDesc1 == true)
Desc1 = r.Attribute("Description1").Value,

if (ShowDesc2 == true)
Desc2 = r.Attribute("Description2").Value,

if (ShowDesc3 == true)
Desc3 = r.Attribute("Description3").Value
};
ListBox.DataContext = dataSet;
  1. 如何在 C Sharp 中实现此目的?
  2. 我的问题有更好的解决方案吗?

非常感谢

最佳答案

使用 conditional operator "?:"

var dataSet = from r in something.Elements("chapter")
select new dictChapter{
Name = r.Attribute("Name").Value,
Desc1 = ShowDesc1 ? r.Attribute("Description1").Value : String.Empty,
Desc2 = ShowDesc2 ? r.Attribute("Description2").Value : String.Empty,
Desc3 = ShowDesc3 ? r.Attribute("Description3").Value : String.Empty,

};

关于c# - 如何根据条件使用 FROM..SELECT 选择 Linq 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10054695/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com