我有一个包含项目的List
,例如:
1) https:\\10.12.23\\
2) https:\\12.23.12.25\\
3) https:\\localhost\
4) https:\\12.25.12.2\\
5) https:\\12.36.12.22\\
6) https:\\12.88.12.32\\
List
绑定到DataGridView
,如下所示:
MyDataGridView.DataSource = MyList;
我希望商品https:\\localhost\
位于顶部。我怎样才能做到这一点?
答案 0 :(得分:2)
您需要在绑定之前对列表进行排序。
List<string> items = new List<string>();
List<string> sortedItems = items
.OrderByDescending<string, string>(i => i)
.ToList<string>();
这是一个非常基本的例子。还有一种OrderBy
方法可以对升序进行排序。如果你有一个对象列表,你可以改变(i =&gt; i)的返回类型,使例如date的属性看起来像.OrderByDescending<string, DateTime>(i => i.SomeDate)
答案 1 :(得分:0)
如果您只想将https://localhost/保留在顶部,那么:
int i = items.FindIndex(delegate(string s) { return s.Contains("localhost"); });
if (i > -1) {
string localhost = items[i];
items.RemoveAt(i);
items.Insert(0, localhost);
}
MyDataGridView.DataSource = items;
...
答案 2 :(得分:0)
如果您希望将localhost专门浮动到顶部,但是对其余的提升进行排序,则可以执行以下操作:
MyDataGridView.DataSource = MyList
.OrderByDescending(i => i.Contains("://localhost/", StringComparison.OrdinalIgnoreCase))
.ThenBy(i => i)
.ToList();
请注意,方法的泛型类型通常可以由编译器推断。