我有一个List,我在某些条件下查询一些数据,它返回OKObject,在其他条件下返回NotSoGoodObject。我想知道如何才能和林克一起做到这一点。
基本上:
var myList = context.Orders......ToList();
object obj=null;
if(myList.All(x=>x.myenum==1)){
obj=OKObject {....};
}
else if(myList.Any(x=>x.myenum==-1)){
obj=NotSoGoodObject{....} ;
}
}else{
//No idea yet
}
我必须再做大约10个枚举。
有没有一种方法可以用一个Linq查询完成上述操作?
唯一可能的方法是,如果您有一个class,例如NumbersGoodEnough
,并且它的一个属性是用linq查询设置的
但这只会让你的代码在这里看起来更干净
或者简单地尝试使用一种方法将所有代码放入,这将是我的第一选择
我会尝试一些类似的方法
public List<object> GetDataObject(int enumInt) {
var myList = context.Orders......ToList();
return myList.Where(x => x.myenum == enumInt).ToList();
}
不过,我不建议使用object。
编辑:
根据您的意见,您可以尝试:
var myList = context.Orders......ToList();
var notSoGoodObjects = myList.Where(x => x.myenum == -1 || x.myenum == anotherBadEnum || ...).ToList();
var okObjects = myList.Where(x => x.myenum == 1 || x.myenum == anotherGoodEnum || ...).ToList();
//If you have other objects you can use LINQ's `.Where()` method to only filter those results.