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));
我不知道它是否相关,但课程是:
public class UnitItemCodeItemID
{
    public string Unit { get; set; }
    public string Description { get; set; }
    public string ItemCode { get; set; }
    public int ItemID { get; set; }
}
你必须只提供一个lambda:
UnitItemCodeItemID uicii = unitItemCodeItemIDList
    .FirstOrDefault(obj => obj.Unit == _unit && obj.Description == desc);
以这种方式思考:它就像在函数中编写foreach循环一样.像这样:
public UnitItemCodeItemID ExtractFirst(IEnumerable<UnitItemCodeItemID> unitItemCodeItemIDList)
{
    foreach(var obj in unitItemCodeItemIDList)
    {
        if (obj.Unit == _unit && obj.Description == desc)
            return obj;
    }
    return null;
}
您的lamba必须提供"if"部分,其余部分在Linq实现中.