Linqに簡単なクエリがあり、単語の長さで文字グループを取得します。以下はコードです
string sentence = "This is sample linq query";
string[] words = sentence.Split(' ');
var query = from word in words
group word by word.Length into gr
orderby gr.Key ascending
select new { Length = gr.Key, Words = gr };
foreach (var obj in query)
{
Console.WriteLine("Word of Length: {0}", obj.Length);
foreach (string word in obj.Words)
{
Console.WriteLine("{0}", word);
}
Console.WriteLine();
}
正しく動作します。上記のレコードをDataGridViewに配置して、これをWindowsフォームアプリケーションに変換したいので、以下のように実装しました。
string sentence = "This is sample linq query";
string[] words = sentence.Split(' ');
var query = from word in words
group word by word.Length into gr
orderby gr.Key ascending
select new { Length = gr.Key, Words = gr };
dataGridView1.DataSource = query.ToList();
しかし、ここでは、Words列ではなく、DataGridViewの最初の列(長さ)を取得します。両方の列を取得するために他に必要なことはありますか。