【问题标题】:foreach loop with 2 hashset variables c#具有 2 个哈希集变量的 foreach 循环 C#
【发布时间】:2023-01-10 19:00:31
【问题描述】:

我有以下

variableAs = "A12,B12,C12"
variableBs = "1.54,75.30,55.50"

method (HashSet<string> variableAs, HashSet<double> variableBs)

 foreach (var variableA in variableAs)

{
Method here requires the two values, must have preserved datatype
and be in same order, ie  A12 with 1.54, B12 with 75.30
}

我试过从这个 answer 压缩,但我不知道它如何与 hashset 数组一起使用, 注意我正在编辑的方法有哈希集,实际值仅作为示例,如果有错误,那一定是我对哈希集是什么的理解,但我无法更改哈希集

【问题讨论】:

  • 首先,您需要将输入字符串填充到哈希集。 "A12,B12,C12"当然不是HashSet。您可以使用String.Split(','),它至少会为您提供一个字符串数组。
  • HashSet 不定义顺序

标签: c# arrays foreach hashset


【解决方案1】:

您需要先将输入字符串填充到某个集合中:

var As = variableAs.Split(',');
var Bs = variableBs.Split(',');

但是 HashSet 不是有序集合,因此这里是错误的选择。您需要一个 List 或一个数组。

现在您可以使用提到的Zip-函数将两个元素组合在一起:

var result = As.Zip(bs, (a, b) => new { a, b });

请参阅此小提琴的完整代码:https://dotnetfiddle.net/9qTG2E

【讨论】:

  • 我正在编辑的方法有哈希集,实际值仅作为示例,如果有错误,那一定是我对哈希集是什么的理解,但我无法更改哈希集
【解决方案2】:

您可能想考虑为什么它们会作为不同的变量出现。您需要检查它们的长度是否相同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-02
    • 2016-06-13
    • 1970-01-01
    • 2013-05-27
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多