Enumerable.First 方法
返回序列中的第一个元素。
Enumerable.FirstOrDefault 方法
返回序列中的第一个元素;如果序列中不包含任何元素,则返回默认值。
注: 在使用时,如果返回的是对象, 建议使用FirstOrDefault , 并对返回的对象进行判空操作
1. FirstOrDefault
如果查询的数据不存在, 则返回 null
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
var compoundList = new List<CompoundType>();
compoundList.Add(new CompoundType()
{
CompoundTypeID = "1",
TypeEN = "Type1"
});
compoundList.Add(new CompoundType()
{
CompoundTypeID = "2",
TypeEN = "Type2"
});
var search = compoundList.Where(d => d.CompoundTypeID == "0").FirstOrDefault(); //返回null
Console.WriteLine("Compound type={0}, typeen = {1}", search.CompoundTypeID, search.TypeEN); // NullException
Console.ReadKey();
}
}
public class CompoundType
{
public string CompoundTypeID { get; set; }
public string TypeEN { get; set; }
}
}
2. First
如果查询的数据不存在, 则抛System.InvalidOperationException异常
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
var compoundList = new List<CompoundType>();
compoundList.Add(new CompoundType()
{
CompoundTypeID = "1",
TypeEN = "Type1"
});
compoundList.Add(new CompoundType()
{
CompoundTypeID = "2",
TypeEN = "Type2"
});
var search = compoundList.Where(d => d.CompoundTypeID == "0").First(); // System.InvalidOperationExceptionan 异常
Console.WriteLine("Compound type={0}, typeen = {1}", search.CompoundTypeID, search.TypeEN);
Console.ReadKey();
}
}
public class CompoundType
{
public string CompoundTypeID { get; set; }
public string TypeEN { get; set; }
}
}