我需要使用对象列表中的一个或两个属性将字符串列表混合在一起,但需要依赖于一些逻辑。列表中的每个项目应该是属性1和属性2连接在一起的字符串值,用连字符分隔。 UNLESS属性1与属性2具有相同的字符串值,在这种情况下,该项只是属性1.为了澄清,所有对象都是相同的类型,并且这两个属性都是字符串值。
这是一个例子来说明以防我没有意义..
Object 1: Prop 1 = "Object 1", Prop 2 = "Object 1" // Same value
Object 2: Prop 1 = "Object 2", Prop 2 = "Obj 2" // Different
结果列表=
[0] = "Object 1",
[1] = "Object 2-Obj 2"
使用Linq或其他东西而不是手动循环是否有“整洁”的方法?
答案 0 :(得分:4)
这样的事情?
var result = allItems.Select(
item=>
item.Prop1==item.Prop2
? item.Prop1
: String.Format("{0}-{1}",
item.Prop1, item.Prop2)
);