クエリは匿名型のリストを返すため、次のvar
キーワードを使用する必要があります。
var sentence = "Here are a few words in a sentence";
var words = sentence.Split(' ');
var groups =
from word in words
orderby word ascending
group word by word.Length into lengthGroups
orderby lengthGroups.Key descending
select new { Length = lengthGroups.Key, Words = lengthGroups };
// Test the results
foreach (var lengthGroup in groups)
{
Console.WriteLine(lengthGroup.Length);
foreach(var word in lengthGroup.Words)
{
Console.WriteLine(word);
}
}
動的を使用することもできますIEnumerable
:
IEnumerable<dynamic> groups =
from word in words
orderby word ascending
group word by word.Length into lengthGroups
orderby lengthGroups.Key descending
select new { Length = lengthGroups.Key, Words = lengthGroups };
結果は文字列のリストではないため、匿名型のリストであるため、文字列の配列にキャストすることはできません。必要に応じて、動的型の配列にキャストできます。
dynamic[] myArray = groups.ToArray();