是否可以使用条件组子句编写LINQ语句?这基本上就是我要做的事情:
bool someFlag = false;
var result = from t in tableName
group t by new { (someFlag ? 0 : t.FieldA), t.FieldB } into g
select g;
所以基本上如果someFlag设置为true,我想只按FieldB分组,但如果它是假的,我想按FieldA和FieldB分组。
答案 0 :(得分:24)
同事为我解决了这个问题:
bool someFlag = false;
var result = from t in tableName
group t by new { FieldA = (someFlag ? 0 : t.FieldA), t.FieldB } into g
select g;
答案 1 :(得分:0)
如果您的someFlag
不是依赖于迭代器当前元素的变量,那么我认为您可以通过编写以下代码来使代码更具可读性。
bool someFlag = false;
var result = someFlag ?
(from t in tableName group t by t.FieldA into g select g) :
(from t in tableName group t by t.FieldB into g select g);
不可否认,它稍微长一点,但我认为其目的明显更明显。
稍微简化您刚发布的代码:
bool someFlag = false;
var result = from t in tableName
group t by (someFlag ? t.FieldA : t.FieldB) into g
select g;
......或者我在这里遗漏了什么?