如何获取IEnumerable中具有其他类中成员的项的值
本文关键字:其他 成员 何获取 获取 IEnumerable | 更新日期: 2023-09-27 18:00:05
enter code here
我有一个GlobalTerms类,它包含一个数据成员术语,它是一个类型为Term的列表。
每个学期班有3名成员。
- int Id
- bool IsApproved
- 字符串注释
所以,它看起来像:
Class GlobalTerms
{
IEnumerable<TermInfo> UserTerms;
}
Class TermInfo
{
public int Id { get; set; }
public string Note{ get; set; }
public bool IsApproved{ get; set; }
}
如果我有一个GlobalTerms对象(GlobalTerms),如何获得TermInfo中Status等于True的TermInfo对象?
我试着写这样的东西:
GlobalTerms globalTerms = new GlobalTerms();
globalTerms.UserTerms.Where(x => x.IsApproved.Equals(true))
.Select(x => x.Id);
我的任务是检查UserTerms中的所有项目在IsApproved字段中是否为true;结果我收到错误:System.ArgumentNullException:值不能为null。参数名称:source提前感谢您的帮助,
答案:结果,这个问题用下一个代码解决了:
*termsList* - is a IList<GlobalTerms>
foreach (var singleTerm in termsList)
{
var sourceTermsList = singleTerm.UserTerms.ToList();
foreach (var status in sourceTermsList)
{
status.IsApproved.Should().BeTrue();
}
}
感谢大家,
您创建了新对象,其属性UserTerms为空
您从未在GlobalTerms
中初始化UserTerms
成员,因此当您创建GlobalTerms
的新实例时,UserTerms
IEnumerable
为null。您需要将其设置为某种类型的非null集合,然后才能对其运行linq查询
此外,什么是IsApproved
成员?如果这是一个可以为null的类型,那么这可能是您的问题。