我有一个来自数据库的数组按字母顺序排序,如下所示:
['代数','其他','物理']
现在,我想要的是当我填充ComboBox
时,'Other'
字将放在数组的末尾。有关如何实现这一点的任何想法?所以数组就是这样的:
['代数','物理','其他']
答案 0 :(得分:3)
在填充组合框后将“其他”添加到组合框中
comboBox1.Items.Remove("OTHERS");
comboBox1.Items.Add("OTHERS");
答案 1 :(得分:3)
如何使用Linq OrderBy。
var arr = new[] { "Algebra", "Others", "Physics" };
arr = arr.OrderBy(e => e == "Others").ToArray();
答案 2 :(得分:2)
Others
您的商品中有例外,您知道这一点。所以只需编码
if (items.Contains("Others"))
{
items.Remove("Others");
}
items.Add("Others"); // place this inside if statement if `Others` should not be added
// and can only be moved to end of array.
答案 3 :(得分:1)
虽然我会使用其他人提出的解决方案(只需手动添加“Others”),如果你真的想对数组进行排序:
var arr = new[] { "Algebra", "Others", "Physics" };
Array.Sort(arr, (p, q) => {
if (p == "Others") {
return q == "Others" ? 0 : 1;
}
if (q == "Others") {
return -1;
}
return StringComparer.CurrentCulture.Compare(p, q);
});
(我创建了一个以特殊方式处理“Others”的字符串比较函数,并认为它是“最大的”字符串)
答案 4 :(得分:1)
这个怎么样:
string[] str = {"Algebra", "Others", "Physics"};
var list = str.Where(c => c != "Others").OrderBy(c => c).ToList();
list.Add("Others");
答案 5 :(得分:0)