gpt4 book ai didi

c# - 从两个列表中生成一个列表

转载 作者:行者123 更新时间:2023-11-30 20:58:18 25 4
gpt4 key购买 nike

我有两个包含字符串的列表。列表a和列表b。目前,我将 Excel 电子表格中列表 a 的值写入 A 列,并将列表 b 的值写入列。 List b 应与 List a 具有相同的数据并按顺序排列。这并非总是如此。当我在 Excel 中写入列表 b 的值时,如果它在列表 a 中的同一点,我想将值写入单元格,否则我想将一个空字符串写入单元格。

我有两个列表 a = {"a","b","c", "d", "e", "c", "f" b = {"a", "d", "e","c"} 。我需要生成第三个列表 c,就像来自两个 c = { "a", "", "", "d", "e","c", ""}

尝试过:

var c = a.Zip(b, (x, y) => x.Equals(y, StringComparison.CurrentCultureIgnoreCase) ? x : "");

但这只会给我 c = {"a"}

最佳答案

您可以使用以下方法:

IEnumerable<T> FillBlanks<T>(IEnumerable<T> source, IEnumerable<T> collection, T blank)
{
// TODO error checking
using(var e = collection.GetEnumerator())
{
bool more = e.MoveNext();
foreach(var x in source)
if(more && x.Equals(e.Current))
{
yield return x;
more = e.MoveNext();
}
else
yield return blank;
}
}

例子:

var a = new [] {"a", "b", "c", "d", "e", "c", "f" };
var b = new [] {"a", "d", "e" ,"c"};
var c = FillBlanks(a, b, "");

c 现在是:

enter image description here

关于c# - 从两个列表中生成一个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16232591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com