我有2个列表,其中包含下一个类型IList<string>
和IList<int>
例如,我在第一个列表中有下一个值
AA
BB
CC
和其他数组
1
2
我想获得下一个结果的组合列表
AA 1
BB 1
CC 1
AA 2
BB 2
CC 2
是否可以使用LINQ to Object?
答案 0 :(得分:3)
如果订单无关紧要,那么:
from left in new List<string>{"AA", "BB", "CC"}
from right in new List<string>{"1", "2"}
select string.Format("{0} {1}", left, right)
输出:
AA 1
AA 2
BB 1
BB 2
CC 1
CC 2
它被称为笛卡尔积:Is there a good LINQ way to do a cartesian product?
答案 1 :(得分:1)
如果你想要一个字符串列表,那么这应该可以解决问题:
var result = numbers
.SelectMany(x => letters.Select(l => string.Join(" ", l, x)).ToList();
答案 2 :(得分:1)
试试这个:
static void Main(string[] args)
{
List<string> firstList = new List<string>();
firstList.Add("AA");
firstList.Add("BB");
firstList.Add("CC");
List<int> secondList = new List<int>();
secondList.Add(1);
secondList.Add(2);
var lstFinal = (from f1 in firstList
from f2 in secondList
select new { f1, f2 }).ToList();
foreach (var s in lstFinal)
{
Console.WriteLine(s.f1 + " " +s.f2);
}
Console.Read();
}
输出:
AA 1
AA 2
BB 1
BB 2
CC 1
CC 2