我有一个名为 choosedGroupList 的字符串列表,由5个项目组成。每个项目代表一个组,
例如:L1和L4表示L1将与L4分组。
另一个示例:L1,L4和L5,L6表示组L1,L4将与组L5,L6分组
我正在尝试将此列表排序为:
L1和L4
L5和L6
L1,L4和L5,L6
L2和L1,L4,L5,L6
L3和L2,L1,L4,L5,L6
所以我写了这段代码来执行此任务,
@JsonUnwrapped
private Username username;
我在代码中没有例外,但是我没有得到期望的结果。
执行代码后,结果如下:
L1和L4
L1,L4和L5,L6
L2和L1,L4,L5,L6
L5和L6
L3和L2,L1,L4,L5,L6
答案 0 :(得分:1)
假设1:您希望首先按'L'的数量排序,然后再按'L'的数字排序。
给出的代码中的主要问题是,您从不检查数组的长度,因此L1,L4总是在L5之前排序,因为L1在L5之前排序。
如果您先对'and'进行分割,然后对从','分割的数组长度进行排序,然后再对该数组的内容进行排序,那么它应该与建议的排序顺序相符。
答案 1 :(得分:1)
如何使用字典?
public static Dictionary<string, int> YourDictionary()
{
Dictionary<string, int> returnDict = new Dictionary<string, int>();
returnDict.Add("L1andL4", 1);
returnDict.Add("L5andL6", 2);
returnDict.Add("L1,L4andL5,L6", 3);
returnDict.Add("L2andL1,L4,L5,L6", 4);
returnDict.Add("L3andL2,L1,L4,L5,L6", 5);
return returnDict;
}
然后遍历字典:
var theDictionary = clsProdDesign.YourDictionary();
var items = from pair in theDictionary orderby pair.Value ascending select pair;
foreach (KeyValuePair<string, int> pair in items)
{
//do whatever
}