我有var
變量叫做retVal,它等於某個查詢。在一些條件之後,我想將它等同於另一個查詢。但是我收到一個錯誤,如implicit cast of type "System.Collections.Generic.IEnumerable<AnonymousType#1>" in "System.Collections.Generic.IEnumerable<AnonymousType#2>" is impossible
。你可以問我爲什麼我不想定義另一個var
變量。因爲這個在foreach
週期中使用。讓我們的代碼一看:如何將var變量等同於另一個查詢
var retVal = from groupItem in result.AsEnumerable()
where groupItem.Sms.First().amountOfParts == (
(from item in rawSmsList.AsEnumerable()
where item.referenceNumber == groupItem.Sms.First().referenceNumber
select item).Count()
)
select new
{
Value = groupItem.Value,
Sms = groupItem.Sms
};
//CONDITION
if (retVal.ToArray().Length==0)
{
//HERE I NEED TO RETVAL EQUATE NEW QUERY
retVal = from groupItem in result.AsEnumerable()
where groupItem.Sms.First().amountOfParts == (
(from item in rawSmsList.AsEnumerable()
where item.senderNumber == groupItem.Sms.First().senderNumber
select item).Count()
)
select new
{
Value = groupItem.Value,
Sms = groupItem.Sms
};
}
foreach (var item in retVal)//FOREACH EXPECTS THE SAME RETVAL!!!
因此,如何會產生不同的查詢到同一var
變量?或者如何找到var
變量的類型,然後將其轉換爲新的已定義變量?
也許['SequenceEqual'](http://msdn.microsoft.com/zh-cn/library/bb342073.aspx)可用於比較兩個匿名類型結果的結果。 – 2013-03-27 04:36:08
@JonathonReinhart,我認爲通過等同於OP意味着將新查詢的結果分配給現有的'retVal',它的一種混亂,但從代碼似乎如此 – Habib 2013-03-27 04:37:23
沒有任何方法可以將一個匿名類型投給另一個? – Nolesh 2013-03-27 04:37:28