B. *_*non -3 c# generics lambda generic-list
我有一个自定义类型的通用列表,我试图找回一个类型的实例.我已尝试使用两个条件"FirstOrDefault"和"Where",但两个条件都给我相同的错误信息("运算符'&&'不能应用于'lambda表达式'的操作数'和'lambda表达'")
他们来了:
// FirstOrDefault
UnitItemCodeItemID uicii =
unitItemCodeItemIDList
.FirstOrDefault((u => u.Unit == _unit) && (d => d.Description == desc));
// Where
UnitItemCodeItemID uicii =
unitItemCodeItemIDList
.Where((u => u.Unit == _unit) && (d => d.Description == desc));
Run Code Online (Sandbox Code Playgroud)
我不知道它是否相关,但课程是:
public class UnitItemCodeItemID
{
public string Unit { get; set; }
public string Description { get; set; }
public string ItemCode { get; set; }
public int ItemID { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
你必须只提供一个lambda:
UnitItemCodeItemID uicii = unitItemCodeItemIDList
.FirstOrDefault(obj => obj.Unit == _unit && obj.Description == desc);
Run Code Online (Sandbox Code Playgroud)
以这种方式思考:它就像在函数中编写foreach循环一样.像这样:
public UnitItemCodeItemID ExtractFirst(IEnumerable<UnitItemCodeItemID> unitItemCodeItemIDList)
{
foreach(var obj in unitItemCodeItemIDList)
{
if (obj.Unit == _unit && obj.Description == desc)
return obj;
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
您的lamba必须提供"if"部分,其余部分在Linq实现中.