如何使用ListView中列的数据对List <string>进行排序

时间:2016-04-05 14:17:33

标签: c# sorting listview

在我的应用程序中,有一个ListView,其中包含产品保留的所有位置的位置名称和拣配优先级(最先选择最低)。除此之外,我还创建临时列表&#39; s仅包含存储单个产品的位置。例如: -

          LISTVIEW                                  List<String>
          --------                                  ------------
 __________________________                  __________________________
|Location |Picking Priority|                |         Location         |
|---------|----------------|                |--------------------------|
|    A    |      100       |                |            A             |
|    B    |       50       |                |            C             |
|    C    |      500       |                |            D             |
|    D    |      150       |                |__________________________|
|_________|________________|

我想要发生的是根据ListView中该位置的拣配优先级排序的列表,从最低到最高。

实际上,这意味着上面的列表现在看起来像这样: -

 __________________________            
|         Location         |
|--------------------------|
|            A             |
|            D             |
|            C             |
|__________________________|

这怎么可能呢?

1 个答案:

答案 0 :(得分:2)

您可以根据列表项订购商品,它很难看,速度慢(比使用具有这两种属性的类慢)但它可以正常工作。

我假设ListViewItem.Text包含位置的名称和ListViewItem.Subitems [1] .Text是具有优先级的列(整数格式):

var items = theListView.Items.Cast<ListViewItem>();
var sortedList = theStringList.OrderBy(d => items.Where(i => i.Text == d).Select(i => int.Parse(i.Subitems[1].Text)).First()).ToList();