我想知道是否有人可以帮助我处理一些小问题,我目前有一个项目列表,其中包括列表中的数组(我无能为力,数据是从Web API中提取的),我需要在该列表上运行linq to sql查询以遍历该列表中的数组以比较数组中的值,因此例如我的代码将如下所示:
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 :(得分:0)
这就是你想要的吗?
var hasMatch= YourList.Any(x=>x.Value==item.Key);
if(hasMatch)
{
//Do Something
}
else
{
//Do Something else
}