我有一个字符串列表,以便我手动设置"1" "2" "5" "4" "3"
等。我还有另一个类绑定到许多元素,其中包含各种属性,其中一个是int {{1} }
如何根据我的字符串列表重新排列对象的顺序。
OrderString
还有一个项目列表,其中包含名称,编号,日期等属性。
假设l_Item继承自Products
var SortedMan = l_Item.OrderBy(O => o.number.ToString())的CompareTo(L_string)))。 类似的东西,但实际的工作代码。
所以基本上两者中的项目数量都是相同的。我需要它按照它们在L_string中的顺序重新排列项目列表。
答案 0 :(得分:0)
假设I_Item是List< Product>:
var sortedList = new List<Product>();
foreach (var value in L_string)
{
sortedList.AddRange(I_Item.Where(x => x.number.ToString() == value));
}
答案 1 :(得分:0)
您可以使用this GenericComparer class实施。
使用像这样的东西
Array.Sort(YourArray, new GenericComparer());
或使用
Array.Sort(YourArray, new PropertyDescriptorComparer());
为了类的属性。
答案 2 :(得分:0)
假设L_string中的条目实际上对应于l_item中的项,您可以这样做:
var sorted = l_item
.Where(item => L_string.Contains(item.number.ToString()))
.OrderBy(item => L_string.IndexOf(item.number.ToString()));
Where
方法过滤集合并返回包含所有匹配元素的新集合。 OrderBy
根据L_string
集合中项目的索引重新排序集合。