对列表<object>的整数属性进行排序

时间:2015-07-03 14:46:57

标签: c#

我有以下列表:

propDataAA 4 propDataAB propDataAC
propDataBA 3 propDataBB propDataBC
propDataCA 2 propDataCB propDataCC
propDataDA 1 propDataDB propDataDC

我想将列表更改为:

propDataAA 1 propDataAB propDataAC
propDataBA 2 propDataBB propDataBC
propDataCA 3 propDataCB propDataCC
propDataDA 4 propDataDB propDataDC

我只想反转整数属性,而所有其他数据都停留。实现这一目标的最佳方法是什么?

2 个答案:

答案 0 :(得分:4)

最简单的方法是在单独的集合中提取该属性,对该集合进行排序,然后迭代主列表,使用新集合更新属性,如:

var propertyList = yourMainList.Select(r=> r.YourProperty)
                                .OrderBy(r=> r)
                                .ToList();

//here both lists count should be same

for(int i = 0; i < yourMainList.Count; i++)
{
     yourMainList[i].YourProperty = propertyList[i];
}

答案 1 :(得分:1)

list.ForEach(a => a.property = list.IndexOf(a) + 1);

DotNetFiddle