gpt4 book ai didi

c# - LINQ SELECT 中的 IF 语句包含列

转载 作者:太空狗 更新时间:2023-10-30 01:31:50 25 4
gpt4 key购买 nike

是否可以在 linq Select 中包含或排除列?

var numberOfYears = Common.Tool.NumberOfYear;
var list = users.Select(item => new
{
Id = item.Id,
Name= item.Name,
City= Item.Address.City.Name,
STATUS = Item.Status,
if(numberOfYears == 1)
{
Y1 = item.Records.Y1,
}
if(numberOfYears == 2)
{
Y1 = item.Records.Y1,
Y2 = item.Records.Y2,
}
if(numberOfYears == 3)
{
Y1 = item.Records.Y1,
Y2 = item.Records.Y2,
Y3 = item.Records.Y3,
}
}).ToList();
}

我的想法是,我只想在有值时显示 Y1、Y2、Y3

最佳答案

感谢 dynamic 关键字的美妙之处,您现在可以在 C# 中实现所需的功能。下面是一个例子:

public class MyItem
{
public string Name { get; set; }
public int Id { get; set; }
}

static void Main(string[] args)
{
List<MyItem> items = new List<MyItem>
{
new MyItem
{
Name ="A",
Id = 1,
},
new MyItem
{
Name = "B",
Id = 2,
}
};

var dynamicItems = items.Select(x => {
dynamic myValue;
if (x.Id % 2 == 0)
myValue = new { Name = x.Name };
else
myValue = new { Name = x.Name, Id = x.Id };

return myValue;
}).ToList();
}

这将返回一个动态对象列表。一个有 1 个属性,一个有 2 个属性。

关于c# - LINQ SELECT 中的 IF 语句包含列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39472990/

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