![](/img/trans.png)
[英]Get all objects from a list of objects where one of the object properties is null or empty in c#
[英]Get properties of one object from the list of objects
我有一个对象列表,然后我想找到一个对象并显示具有ID的属性的值。
Names name1 = new Names(){ID=1, User="John"};
Names name2 = new Names(){ID=2, User="Mike"};
Names name3 = new Names(){ID=3, User="Ben"};
这是在下面列出这些对象:
List<Names> names;
现在,我想返回ID等于2的User的名称。当我只有对象列表时,必须使用什么查询?
您可以根据需要使用First
, FirstOrDefault
, Single
或SingleOrDefault
之一来执行此操作,
我怀疑最合适的是基于ID通常是唯一的事实,因此SingeOrDefault
只能让您期望具有指定ID
单个项目
var item = names.SingleOrDefault(x => x.ID == 2);
if(item != null){
var name = item.Name;
}
Single
和SingleOrDefault
之间的区别在于,如果找不到前者,它将引发错误,而后者将返回默认值-如果是对象,则返回null
。
尝试这个
Names name1 = new Names() { ID = 1, User = "John" };
Names name2 = new Names() { ID = 2, User = "Mike" };
Names name3 = new Names() { ID = 3, User = "Ben" };
List<Names> names = new List<Names>();
names.Add(name1);
names.Add(name2);
names.Add(name3);
查找id=2
object
Names obj = names.Where(x => x.ID == 2).FirstOrDefault();
int ID = obj.ID;
string UserName = obj.User;
如果您不了解LINQ,请尝试此操作
Names name1 = new Names() { ID = 1, User = "John" };
Names name2 = new Names() { ID = 2, User = "Mike" };
Names name3 = new Names() { ID = 3, User = "Ben" };
List<Names> names = new List<Names>();
names.Add(name1);
names.Add(name2);
names.Add(name3);
foreach(var item in names)
{
if(item.ID == 2)
{
string strName = item.Name;
break;
}
}
// this will return a list containing all names which are against user ID for example 1,
// or an empty list if there is no user with ID 1
var allnames = names.Where(u => u.ID == 1).ToList();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.