2014-02-14 7 views
0

Мне интересно, может ли кто-нибудь помочь мне с чем-то второстепенным, в настоящее время у меня есть список элементов, которые включают в себя массив внутри списка (ничего не могу сделать с этим, данные извлекаются из Web API), мне нужно запустить LINQ к SQL-запроса в этом списке, чтобы перебирать массив в этом списке, чтобы сравнить значения в массиве, так, например, мой код будет выглядеть следующим образом:LINQ to SQL Query Array в списке

var query1 = from q1 in datacontext.view 
      select q1; 

foreach (var item in query1) 
{ 
    try 
    { 
     var query2 = from q2 in List<> 
        where q2.Array(iterate through the array to find the name) 
          .value = item.Key(is a string) 
        select q2; 

     if (query2.count() == 0) 
     { 
      Do something 
     } 
     else 
     { 
      Do something else 
     } 
    } 
} 

в основном в то время как он выполняет итерацию через первый список, чтобы сравнить значение, список во втором запросе в основном имеет массив внутри массива, и мне нужно найти имя массива (а не число) и сравнить его значение со значением в первый запрос, надеюсь, что кто-то имеет какой-то смысл.

ОБНОВЛЕНИЕ: Точный код

List<net.autotask.webservices4.InstalledProduct> CurrentAutotaskSoftware = GetSoftwareAlreadyInAutotask(myService); 

      LANSweeperDataContext ldc = new LANSweeperDataContext(); 

      var licenseKey = from l in ldc.LANSweeper_License_Keys 
          select l; 

      foreach (var lssi in licenseKey) 
      { 

       try 
       { 
        var lSLicenseKeys = from c in CurrentAutotaskSoftware 
             where c.UserDefinedFields.Any(x => x.Value == lssi.License_Key) 
             select c; 



        if (lSLicenseKeys.Count() == 0) 
        { 
         //AddItemToAutotask(myService, lssi); 
         Console.WriteLine("Adding " + lssi.Product + lssi.License_Key); 
        } 
        else 
        { 
         //UpdateItemInAutotask(myService, lSLicenseKeys.First(), lssi); 
         Console.WriteLine("Updating with" + lssi.Product + lssi.License_Key); 
        } 
       } 
       catch (Exception e) 
       { 
        Console.WriteLine(e); 
       } 
      } 

ответ

0

Это то, что вы после этого?

var hasMatch= YourList.Any(x=>x.Value==item.Key); 
if(hasMatch) 
{ 
    //Do Something 
} 
else 
{ 
    //Do Something else 
} 
+0

Я работал в linq на sql, однако он не перечисляет результаты, какие-либо идеи? – user2831039

+0

С какой именно проблемой вы столкнулись? 'from q2 в List <>', что 'List <>' поступает из базы данных или веб-api? –

+0

q1 из базы данных, а q2 - из Интернета api – user2831039