在簡化的下面的例子中,我想在分配之前定義result
。下面的linq查詢返回匿名類型的列表。 result
將作爲IEnumerable <'a>從linq查詢中提取出來,但我無法在方法的頂部定義它。我正在嘗試做什麼(在.NET 4中)?如何預先定義一個包含匿名類型的變量?
bool large = true;
var result = new IEnumerable(); //This is wrong
List<int> numbers = new int[]{1,2,3,4,5,6,7,8,9,10}.ToList<int>();
if (large)
{
result = from n in numbers
where n > 5
select new
{
value = n
};
}
else
{
result = from n in numbers
where n < 5
select new
{
value = n
};
}
foreach (var num in result)
{
Console.WriteLine(num.value);
}
編輯:爲了清楚我知道我不需要上面例子中的匿名類型。這只是用一個簡單的例子來說明我的問題。
請注意,這是「相同的屬性名稱,具有相同的屬性類型,具有相同的順序」。 – 2011-03-09 17:50:34
是的,這是有效的,正是我所期待的。謝謝! – HitLikeAHammer 2011-03-09 17:57:23