1

タイプのオブジェクトがありますIEnumerable<IEnumerable<int>>。内部内のintを並べ替える必要がありますが、IEnumerable<int>これを行う方法がわかりません。

IEnumerable<IEnumerable<int>>このコードを使用しList<List<int>>て、並べ替えを簡単にするためにに変換しようとしました。

var sortedResults = results.ForEach(x => x.ToList());

しかし、「暗黙的に型付けされた変数にvoidを割り当てることができません」というエラーが表示されます

並べ替えと変換を一度に行うと、同じエラーが発生します。

var sortedResults = results.ToList().ForEach(x => x.ToList().Sort((a ,b) => a.CompareTo(b))));

これを行うための最良の方法は何ですか?

4

3 に答える 3

6

使用しOrderByてください-これらは整数であるため、数値自体を基準として使用できます。

sortedResults = results.Select(x => x.OrderBy(num => num));

IEnumerable<IEnumerable<int>>上記は、リストが必要な場合にのみ出力を作成することを前提としています。使用するToList()必要がありました。

于 2012-04-27T20:39:15.210 に答える
3
var sortedResults = results.Select(list => list.OrderBy(x => x));
于 2012-04-27T20:39:36.473 に答える
0

IEnumerableを使用して注文する方法の例を描いてみました。それがどのように機能するかを理解するのに役立つと思います。例を観察してください。例を理解するのに役立つことを願っています。

 public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        class Person
        {
            public string name { get; set; }
            public int personage { get; set; }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Person[] p ={new Person{name="Alice",personage=10 },
                         new Person{name="Alex",personage=11},
                         new Person{name="Danny",personage=12}};
            IEnumerable<Person> query = p.OrderBy(ps => ps.personage);
            foreach (Person item in query)
            {
                textBox1.Text += item.name + item.personage.ToString() + Environment.NewLine;
            }

        }

この結果は次の とおり です
。Alice10Alex11Danny12

于 2012-06-16T14:36:24.883 に答える