我正在尝试在哪里做condition对,我要执行WHERE其他,否则。
var condition = true;
var mast = new List<Master>
{
new Master{Id = 2, Prop1 = "Default", Prop2 = "Data", Prop3 = 11},
new Master{Id = 3, Prop1 = "Some", Prop2 = "TestData", Prop3 = 11},
new Master{Id = 4, Prop1 = "Some", Prop2 = "MoreData", Prop3 = 11},
};
var g = mast.Where(w=> condition ? (x => x.Prop1.ToLower() != "default" || x.Prop2.ToLower() != "data") : true = true).ToList();
Run Code Online (Sandbox Code Playgroud)
上面的代码给我错误,
无法确定条件表达式的类型,因为“ lambda表达式”和“ bool”之间没有隐式转换
只需将条件移至 lambda 中即可:
var g = mast.Where(w => (condition
? (w.Prop1.ToLower() != "default" || w.Prop2.ToLower() != "data")
: true)
).ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
104 次 |
| 最近记录: |