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);
}