gpt4 book ai didi

c# - 生成 List 和 List 之间的列表保存/创建映射

转载 作者:行者123 更新时间:2023-12-02 18:00:24 24 4
gpt4 key购买 nike

这可能是一个简单的问题,但我对 C# 和 LINQ 仍然很陌生(我认为这在这种情况下很有用)。

我有一个包含不同组的列表:

e.g. List<string>() { a, a, b, c, a, b, b };

我想制作一个相应的列表(类似于 GroupID),持有:

List<int>() { 1, 1, 2, 3, 1, 2, 2}

不同组的数量可以是 1-x 之间的任意值,因此需要动态生成列表。重复的组应该获得相同的数字。

所有这些最终都应该以 LINQ zip() 形式将两者合并到“CombinedList”中,并使用 foreach 将 SqlBulkCopy 与其他数据一起复制到数据库中。

table.Rows.Add(data1, data2, data3, CombinedList.GroupID.toString() ,CombinedList.Group.ToString());

希望这是有道理的。

示例:

List<string>() { a, a, b, c, a, b, b };

此列表包含 3 个独特的组:a、b 和 c。

为组分配一个递增的数字,从 1 开始:

a = 1, b = 2, c = 3.

生成的结果列表应该保存

List<string>() { 1, 1, 2, 3, 1, 2, 2 };

最佳答案

这对我有用:

var source = new List<string>() { "a", "a", "b", "c", "a", "b", "b" };

var map =
source
.Distinct()
.Select((x, n) => new { x, n })
.ToDictionary(xn => xn.x, xn => xn.n + 1);

var result =
source
.Select(x => new { GroupIP = map[x], Value = x });

我得到这个结果:

result

关于c# - 生成 List<string> 和 List<int> 之间的列表保存/创建映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34223151/

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