我不需要对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);
}
答案 0 :(得分:1)
ListView.Items
ListViewItemCollection
继承IList, ICollection, IEnumerable
通过linq,你可以得到你想要的东西。
System.Nullable<int> max = (
from m in listView1.Items.Cast<ListViewItem>()
select int.ParseInt(m.SubItems[0].Text)).Max();
答案 1 :(得分:1)
可能会错过一些演员或其他东西,而且有点难看,但这是一个想法:
var max = listView1.Items.Cast<ListViewItem>().Max(x => int.Parse(x.SubItems[0].Text));
这使用LINQ,因此请确保您的文件中包含using System.Linq;
并使用.NET&gt; = 3.5。