Я имею переменную 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/en-us/library/bb342073.aspx) для сравнения результатов двух анонимных типизированных результатов. –
@JonathonReinhart, я думаю, что equate OP означает присвоить результат нового запроса существующему 'retVal', его запутанному, но из кода, который кажется таким – Habib
Нет никакого способа отбросить один анонимный тип другому? – Nolesh