gpt4 book ai didi

c# - LINQ 返回条件对象

转载 作者:行者123 更新时间:2023-11-30 21:15:37 25 4
gpt4 key购买 nike

我有一个简单的 LINQ 语句,它根据查询 Xml 文件返回对象列表。

        var locations = from s in xdoc.Descendants("RECORD")
where IdList.Contains(s.Element("ID1").Value)
select new Location
{
Id = s.Element("ID1").Value
};

每个 Xml 记录还有一个 ID2 元素,如果“包含”为真,我想返回该元素。所以基本上,我希望我的 Location 对象根据 IdList Contains 返回的内容(可能是 ID1 或 ID2)是有条件的。像这样的东西:

if(IdList.Contains(s.element("ID1").value){ select new Location {Id = s.Element("ID1").Value};}
if(IdList.Contains(s.element("ID2").value){ select new Location {Id = s.Element("ID2").Value};}

这可以在单个 LINQ 语句中完成吗?

最佳答案

var locations = from s in xdoc.Descendants("RECORD")
select new Location
{
Id = IdList.Contains(s.Element("ID1").Value) ?
s.Element("ID1").Value :
(IdList.Contains(s.Element("ID2").Value) ?
s.Element("ID2").Value :
DefaultValue)
};

如果您需要位置包含 ID1 或 ID2,只需添加一个 where 条件

关于c# - LINQ 返回条件对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5664100/

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