C# C Linq查询连接两个列表并将结果分配给combobox
我有两个字符串列表C# C Linq查询连接两个列表并将结果分配给combobox,c#,linq,combobox,C#,Linq,Combobox,我有两个字符串列表 Lista Listb ------------------------ apple mango mango grapes grapes watermelon pineapple orange banana 我想在我的组合框中显示lista的所有项目,同时选择芒果和葡萄的共同项目,并在组合框中预先选中它们 combobox items ------------------
Lista Listb
------------------------
apple mango
mango grapes
grapes watermelon
pineapple orange
banana
我想在我的组合框中显示lista的所有项目,同时选择芒果和葡萄的共同项目,并在组合框中预先选中它们
combobox items
---------------------
apple
mango - checked
grapes - checked
pineapple
banana
你能行
var listA = new[] {"apple", "mango", "grapes", "pineapple", "banana"};
var listB = new[] {"mango", "grapes", "watermelon", "orange"};
var common = listA.Intersect(listB);
要获得重叠,可以执行以下操作
var listA = new[] {"apple", "mango", "grapes", "pineapple", "banana"};
var listB = new[] {"mango", "grapes", "watermelon", "orange"};
var common = listA.Intersect(listB);
要获得重叠选择可以获得布尔值列表,显示两个列表中的元素
List<string> Lista = new List<string>(new string[] { "apple", "mango", "grapes", "pineapple", "banana" });
List<string> Listb = new List<string>(new string[] {"mango","grapes","watermelon","orange"});
var inBoth = Lista.Select(x => Listb.Contains(x));
// False, True, True, False, False
Select可以获得一个布尔值列表,显示两个列表中的元素
List<string> Lista = new List<string>(new string[] { "apple", "mango", "grapes", "pineapple", "banana" });
List<string> Listb = new List<string>(new string[] {"mango","grapes","watermelon","orange"});
var inBoth = Lista.Select(x => Listb.Contains(x));
// False, True, True, False, False
在Linq中尝试左连接
var listA = new[] { "apple", "mango", "grapes", "pineapple", "banana" }.ToList();
var listB = new[] { "mango", "grapes", "watermelon", "orange" }.ToList();
var listCheckboxItem =
(
from a in listA
join b in listB on a equals b into lst
from item in lst.DefaultIfEmpty()
select new
{
Name = a,
IsChecked = !(string.IsNullOrEmpty(item))
}
).ToList();
在Linq中尝试左连接
var listA = new[] { "apple", "mango", "grapes", "pineapple", "banana" }.ToList();
var listB = new[] { "mango", "grapes", "watermelon", "orange" }.ToList();
var listCheckboxItem =
(
from a in listA
join b in listB on a equals b into lst
from item in lst.DefaultIfEmpty()
select new
{
Name = a,
IsChecked = !(string.IsNullOrEmpty(item))
}
).ToList();
以下内容应为您提供一个列表,其中包含Lista中的值以及是否应在IsChecked属性中检查列表中某项的其他信息:
var result = Lista.Select(a => new
{
Value = a,
IsChecked = Listb.Any(b => b == a)
}).ToList();
剩下的只是将结果绑定到combobox。此步骤因平台而异ASP.NET、WPF、Windows窗体等。几乎所有步骤都有combobox,我相信每个步骤都有,在internet上有很好的文档记录,因此您应该先阅读并尝试一个。以下内容应为您提供一个列表,其中包含Lista中的值以及是否应在IsChecked属性中检查列表中某项的附加信息:
var result = Lista.Select(a => new
{
Value = a,
IsChecked = Listb.Any(b => b == a)
}).ToList();
剩下的只是将结果绑定到combobox。此步骤根据您的平台ASP.NET、WPF、Windows窗体等而有所不同。几乎所有的步骤都有combobox,我相信,每个步骤都在internet上有很好的文档记录,因此您应该先阅读并尝试一个。在问问题时,您应该包括您尝试过的示例代码,而不仅仅是询问代码。请参阅询问问题的时间,以便您应该包括您尝试过的示例代码,而不仅仅是询问代码。看见