C# 如何从列表中获取对象

C# 如何从列表中获取对象,c#,linq,list,C#,Linq,List,我想得到一个列表中的对象。我有以下代码 List<Product> productList = GetList(); var product = (from p in productList where p.Id == "xyz" select new Product() { Id = p.Id,

我想得到一个列表中的对象。我有以下代码

List<Product> productList = GetList();

var product = (from p in productList 
                   where p.Id == "xyz"
                   select new Product()
                       {
                           Id = p.Id,
                           -,
                           -
                       });

foreach ( var p in product)
{
    //some code
}
List productList=GetList();
var product=(来自productList中的p
其中p.Id==“xyz”
选择新产品()
{
Id=p.Id,
-,
-
});
foreach(产品中的var p)
{
//一些代码
}
我需要将对象直接放入var-product中

List-productList=GetList();
List<Product> productList = GetList();

var product = (from p in productList 
                   where p.Id == "xyz"
                   select new Product()
                       {
                           Id = p.Id,
                           -,
                           -
                       }).SingleOrDefault();
var product=(来自productList中的p 其中p.Id==“xyz” 选择新产品() { Id=p.Id, -, - }).SingleOrDefault();
List productList=GetList();
var product=(来自productList中的p
其中p.Id==“xyz”
选择新产品()
{
Id=p.Id,
-,
-
}).SingleOrDefault();

您可以使用更合理的“方法”语法,而不是查询语法

var product = productList.SingleOrDefault(p => p.Id == "xyz");
编辑:您可以使用两种不同的方法来获取所需的元素

.SingleOrDefault()
将尝试查找您要查找的项,如果没有与表达式匹配的对象,则返回null(默认值)

.Single()
将执行相同的操作,只是如果找不到对象,它将引发异常

.FirstOrDefault()
将获得与表达式匹配的对象列表,并检索第一个对象。如果有多个Id为
xyz
的对象,则
.Single()
.SingleOrDefault()
都将引发异常


.First()
的工作原理与
.FirstOrDefault()
类似,但与
类似。如果找不到要查找的内容,Single()
将引发异常。

您可以使用更合理的“方法”语法,而不是查询语法

var product = productList.SingleOrDefault(p => p.Id == "xyz");
编辑:您可以使用两种不同的方法来获取所需的元素

.SingleOrDefault()
将尝试查找您要查找的项,如果没有与表达式匹配的对象,则返回null(默认值)

.Single()
将执行相同的操作,只是如果找不到对象,它将引发异常

.FirstOrDefault()
将获得与表达式匹配的对象列表,并检索第一个对象。如果有多个Id为
xyz
的对象,则
.Single()
.SingleOrDefault()
都将引发异常


.First()
的工作原理与
.FirstOrDefault()
类似,但与
类似。如果没有找到要查找的内容,Single()
将引发异常。

您可以使用
.SingleOrDefault()
.Single()

如果
productList
已经是
Product
的列表,则不要使用
select new
重建
Product
对象的新实例

你可以简单地做:

var product = productList.SingleOrDefault(p => p.Id == ...);

您可以使用
.SingleOrDefault()
.Single()

如果
productList
已经是
Product
的列表,则不要使用
select new
重建
Product
对象的新实例

你可以简单地做:

var product = productList.SingleOrDefault(p => p.Id == ...);