使用DataSource属性在DataGridView中进行排序

时间:2009-09-03 12:33:49

标签: c# .net datagridview

我有一个包含项目的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\位于顶部。我怎样才能做到这一点?

3 个答案:

答案 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();

请注意,方法的泛型类型通常可以由编译器推断。