0

我不需要对 listView 进行排序我只需要从列中获取最高值,该列中的所有值都是数字。如果我能以IEnumerable<int>某种方式将其转换为然后我可以使用 LINQ,那就太好了。

更新

我现有的代码:DrawArray 是带有随机数的数组。我需要在index.ToString()不创建另一个列表或数组的情况下获取列的最大值。

for (int i = 0; i < Rounds; i++)
{
ListViewItem lvItem = new ListViewItem(i.ToString());

lvItem.SubItems.Add(new ListViewItem.ListViewSubItem(lvItem, index.ToString()));

int[] DrawArray = Draw(DrawsPerRound, RoundSize);

lvItem.SubItems.Add(new ListViewItem.ListViewSubItem(lvItem, DrawArray.Aggregate("", (s, t) => s + ", " + t.ToString()).TrimStart(new char[] { ',' })));

lvItem.SubItems.Add(new ListViewItem.ListViewSubItem(lvItem, "No"));

lvItem.BackColor = Color.PaleVioletRed;

listView1.Items.Add(lvItem);
}
4

2 回答 2

1

ListView.ItemsListViewItemCollection继承的IList, ICollection, IEnumerable

通过linq,你可以得到你想要的。

System.Nullable<int> max = (
              from m in listView1.Items.Cast<ListViewItem>() 
              select int.ParseInt(m.SubItems[0].Text)).Max();
于 2012-05-17T18:29:38.207 回答
1

可能缺少一些演员或其他东西,而且有点难看,但这里有一个想法:

var max = listView1.Items.Cast<ListViewItem>().Max(x => int.Parse(x.SubItems[0].Text));

这使用 LINQ,因此请确保您using System.Linq;的文件中有并且使用的是 .NET >= 3.5。

于 2012-05-17T18:31:59.990 回答