gpt4 book ai didi

c# - 在 C# 中的匿名对象列表中查找项目

转载 作者:行者123 更新时间:2023-11-30 18:58:58 24 4
gpt4 key购买 nike

我有一个匿名对象列表:

var jobs = new List<object>
{
new
{
JobName = "Job1",
JobDate = "Date1",
JobUser = "User1"
},
new
{
JobName = "Job2",
JobDate = "Date2",
JobUser = "User2"
}
};

如何使用 linq 找到“Job2”?

例如

var job2 = jobs.Where(x=>x.JobName == "Job2");

我知道以下内容,但无法以优雅的方式将其应用到我的上述用例中:

var anonymJob = new 
{
JobName = "Job2",
JobDate = "Date2",
JobUser = "User2"
};

dynamic tJob = anonymJob.GetType();
string jobName = tJob.JobName; // this will be "Job2"

请注意 jobs.First() 或 Last() 不被接受,因为此问题的正确答案是如何根据其特定属性找到工作。

谢谢

最佳答案

如果您使用相同的方法,您可以只使用匿名类型的列表:

var jobs = new [] {
new { JobName = "Job1", JobDate = "Date1", JobUser = "User1" },
new { JobName = "Job2", JobDate = "Date2", JobUser = "User2" }
}.ToList();

var job2 = jobs.First(x => x.JobName == "Job2");

隐式类型数组的使用允许您的列表仍然是强类型的,但使用匿名类型。

如果您必须使用List<object> ,那么我期望:

IEnumerable<dynamic> dynamicJobs = jobs;
var job2 = dynamicJobs.First(x => x.JobName == "Job2");

工作。请注意,这根本不涉及复制列表或更改列表的声明类型。您还可以使用:

var job2 = jobs.Cast<dynamic>().First(x => x.JobName == "Job2");

关于c# - 在 C# 中的匿名对象列表中查找项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16523823/

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