【发布时间】:2020-08-25 04:04:45
【问题描述】:
我有List<KeyValuePair<string,string>>的列表
var results = new List <KeyValuePair<string, string>>();
我还有两个字符串列表:
var position= new List<string>{ "first", "second", "third" };
var name = new List<string>{ "John", "Diana", "Matthew", "Lisa", "James"};
这两个列表的大小可以不同,只需添加一个空字符串即可。
我想将它们合并在一起以创建一个新的results。我目前正在使用这个:
results = position.Zip(name, (x, y) => new KeyValuePair<string, string>(x, y)).ToList();
如果只有两个列表的大小相同,这将起作用。但是,如果不是,它会修剪 name 列表以匹配 position 列表。所以不是所有的值都存在。
我需要做到以下几点
first,John
second,Diana
third, Matthew
, Lisa
, Jame
这两个列表在任何时候都可以是可变大小的,而不是固定的。所以有时name 可以大于position,反之亦然。
我看到有人使用了SelectMany,但不确定如何将它与我的Zip 结合使用。
有什么想法或建议吗?
【问题讨论】:
-
当你说“这两个列表可以有不同的大小”时,可以比
position长或只是name长? -
是的,这是正确的,两个列表在任何时候都可以是可变大小的。不固定。所以有时
name可以大于position,反之亦然。
标签: c#