gpt4 book ai didi

c# - 如何 "interleave"两个数据表

转载 作者:行者123 更新时间:2023-11-30 12:53:03 33 4
gpt4 key购买 nike

获取这两个列表:

list 1

红色绿色的蓝色

list 2

棕色红色的蓝色的紫色的橙色

我正在寻找一种方法将这些列表组合在一起以生成:

列表3

棕色红色的绿色的蓝色的紫色的橙色

我认为基本规则是:

1) 在列表顶部插入第一个公共(public)行之前的任何行(例如,棕色出现在第一个公共(public)行之前,红色);

2) 如果两个列表都有两个项目,则在行之间插入项目(例如,列表 1 在红色和蓝色之间插入绿色);和

3) 如果在 2 中没有找到“中间性”,则在底部插入行(例如,列表 2 在底部插入橙色)。

列表存储在数据表中。我猜我必须在迭代时在它们之间切换,但我很难找出一种组合行的方法。

感谢您的帮助。

--布伦特

最佳答案

我认为按照这些思路应该可以为您做到这一点:

Dictionary<string, float> clrs = new Dictionary<string, float>();

float i = 0;
foreach (string s in largeList)
clrs.Add(s, i++);

float lastIndex = 0;
for (int j = 0; j < smallList.Count; j++)
{
if (largeList.Contains(smallList[j]))
lastIndex = clrs[smallList[j]];
else
clrs.Add(smallList[j], lastIndex + 0.5f);
}

var sorted = from c in clrs.Keys orderby clrs[c] select c;

return sorted.ToList<string>();

它假定两个列表中都没有重复项,并且函数将较大的列表作为 largelist 传递。

关于c# - 如何 "interleave"两个数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3011241/

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