我存储了很多这样的文字行:
1|1000|1|0|Text Message|||
1|1000|1|1|Text Message|||
1|1000|2|0|Text Message|||
1|1000|2|1|Text Message|||
1|1000|3|0|Text Message|||
1|1001|1|0|Text Message|||
收藏中的:List<ObjRow> listRows
这是相应的类:
public class ObjRow
{
private string n_Par { get; set; }
private string n_Rad { get; set; }
private string n_Lang { get; set; }
private string n_Line_Mex { get; set; }
private string text_Mex { get; set; }
private int n_Row { get; set; }
}
我想找到哪些行(按属性n_Rad
分组,2°PIPE值)没有值n_Lang == 3
(3°PIPE值)。
如何使用LINQ执行此操作?
答案 0 :(得分:3)
这应该是你想要的:
var groupsWithoutLang3 = listRows
.GroupBy(o => o.n_Rad)
.Where(g => !g.Any(o => o.n_Lang == "3"));
它仅选择没有带ObjRow
的{{1}}的群组。
答案 1 :(得分:1)
var groups = listRows.GroupBy(row => row.Rad);
var result = groups.Where(group => !group.Any(item => (item.Lang == 3)));
按Rad
对行进行分组,然后选择不包含Lang
为3的行的组。