我有一个名为"MyObject
"的对象,它包含以下属性(均为字符串):"PropA
"、"PropB
"和"PropC
"。
var List = new List();
我向列表中添加了一些对象,并赋予以下值:
List.Add(new MyObject { PropA = "AA", PropB = "1", PropC = "TT"});
List.Add(new MyObject { PropA = "AA", PropB = "1", PropC = "TT"});
List.Add(new MyObject { PropA = "AA", PropB = "1", PropC = "TT"});
List.Add(new MyObject { PropA = "BB", PropB = "1", PropC = "TT"});
List.Add(new MyObject { PropA = "BB", PropB = "1", PropC = "TT"});
使用linq,我希望对于每个不同的"PropA
",保留第一条记录但将其他记录设置为空字符串。 我想要的结果是一个包含以下值的列表:
MyObject { PropA = "AA", PropB = "1", PropC = "TT"}
MyObject { PropA = "", PropB = "", PropC = "TT"}
MyObject { PropA = "", PropB = "", PropC = "TT"}
MyObject { PropA = "BB", PropB = "1", PropC = "TT"}
MyObject { PropA = "", PropB = "", PropC = "TT"}
我使用了 foreach,但使用 Linq 可能会更简洁,但结果的顺序必须保持不变。
List.GroupBy(prop => prop.PropA).Select(group => group.First())
? - SBIPropB
,但没有修改PropC
(即"clean"是什么意思)?您能用一些伪代码展示您试图做什么吗? - default