C# 如何将多个列表/数组中的元素合并成一个包含原始列表中所有唯一值的列表?

C# 如何将多个列表/数组中的元素合并成一个包含原始列表中所有唯一值的列表?,c#,list,C#,List,我应该声明这不是一个排列问题,我想用C#来做这件事。我有一个可变数量的字符串列表,每个列表有一个可变数量的元素 例如: 清单1: 一个 两个 清单2: 联合国组织 磁盘操作系统 特雷斯 清单3: 1. 2. 3. 四, 结果应该是: OneUno1 OneUno2 OneUno3 OneUno4 OneDos1 OneDos2 OneDos3 OneDos4 一项1 一项2 一个三个 一项4 TwoUno1 TwoUno2 TwoUno3 TwoUno4 TwoDos1 TwoDos2 TwoD

我应该声明这不是一个排列问题,我想用C#来做这件事。我有一个可变数量的字符串列表,每个列表有一个可变数量的元素

例如:

清单1: 一个 两个

清单2: 联合国组织 磁盘操作系统 特雷斯

清单3: 1. 2. 3. 四,

结果应该是: OneUno1 OneUno2 OneUno3 OneUno4 OneDos1 OneDos2 OneDos3 OneDos4 一项1 一项2 一个三个 一项4 TwoUno1 TwoUno2 TwoUno3 TwoUno4 TwoDos1 TwoDos2 TwoDos3 TwoDos4 两棵树1 TwoTres2 TwoTres3 两棵树4

这里真正的问题是,最终列表可能会非常大,非常快,因此如果在内存中执行此操作,我会遇到问题,因此我的想法是在生成字符串时将其写入文件,但我在尝试找出执行此操作的逻辑/算法时遇到了问题。

:

:

您需要的是简单的交叉
Join

IEnumerable<string> results = from l1 in list1
    from l2 in list2
    from l3 in list3
    select string.Format("{0}{1}{2}", l1, l2, l3);
您需要的是简单的交叉
Join

IEnumerable<string> results = from l1 in list1
    from l2 in list2
    from l3 in list3
    select string.Format("{0}{1}{2}", l1, l2, l3);

你生成这么多不适合内存的元素的目的是什么?你生成这么多不适合内存的元素的目的是什么?谢谢你的回答,但是在这种情况下你会如何处理可变数量的列表?谢谢你的回答,但是你会如何处理可变数量的列表这个场景?谢谢你的回答,但是在这个场景中你会如何处理可变数量的列表?@DanScott0806看看这个答案是的,这正是我需要的!谢谢谢谢你的回答,但是在这种情况下,你会如何处理可变数量的列表?@DanScott0806看看这个答案是的,这正是我需要的!谢谢
foreach(var smallchunk in results.Take(1000))
{
     System.IO.File.AppendAllLines("filepath", smallChunk); 
}