输出对应的唯一元素

Posted

技术标签:

【中文标题】输出对应的唯一元素【英文标题】:output the corresponding unique element 【发布时间】:2021-11-07 03:25:24 【问题描述】:

我有课

public class Error

    public string Message get; set;
    public string Recomendation get; set;
    public ErrorType errorType get; set;

其中 ErrorType 是表示某种错误类型的枚举

我收到一个错误列表作为输入,并希望收到如下输出:为每个元素打印一条消息,并仅针对相应类型的错误显示一条建议,例如

输入:

[err1, rec1, type1], 
[err2, rec1, type1], 
[err3, rec2, type2]

输出:

err1
err2
rec1
err3
rec2

我认为它可以通过在遍历列表时存储一个中间变量来实现,但我不知道在边缘情况下该怎么做,或者当所有实体的错误类型相同时。 如何实现这种逻辑?

【问题讨论】:

【参考方案1】:

考虑使用 LINQ GroupBy,它允许您按错误类型或建议进行分组。然后你可以迭代你的组并写出你的错误信息和建议:

// Assume variable "input" is an Enumerable of Error objects
var recommendations = input.GroupBy(err => err.Recomendation);
foreach (var errorTypeGroup in recommendations)

    foreach (var error in errorTypeGroup)
    
        Console.WriteLine(error.Message);
    
    Console.WriteLine(errorTypeGroup.Key); // Key will be the recommendation selected by the lambda

【讨论】:

以上是关于输出对应的唯一元素的主要内容,如果未能解决你的问题,请参考以下文章

让无序数组元素进行排序,排序完后将排序后元素对应的原先元素的位置输出

1965: 求矩阵中最小元素及其位置

Leetcode_40_CombinationSumII--数组元素组合,和为目标值,一个元素只可用一次,输出每种组合,每种组合唯一

将 CSV 的唯一第 0 个元素分组为 python 或 hive 中唯一的第 i 个元素

通过ID获取元素

Leetcode_40_CombinationSumII--数组元素组合,和为目标值,一个元素只可用一次,输出每种组合,每种组合唯一