gpt4 book ai didi

c# - 删除 'Where' 并将条件移动到 LINQ 中的 'First'

转载 作者:行者123 更新时间:2023-11-30 13:35:32 24 4
gpt4 key购买 nike

我有一个 Windows 应用程序,它有一些类似的代码如下。
作为名为 Order 的类。

class Order{
public string Orderid { get; set; }
public string CustName { get; set; }
}

现在,在此应用程序的另一个类中,创建了 Order 类的对象并为其分配了值。

Order order = new Order();
order = JObject.Parse(some JSON data).ToObject<Order>();

现在我想从 order 中提取基于 Orderid 的 CustName。为此,我使用了 LINQ。

string custName = order.Where(s => s.Key == "o123").First().Value;

我正在使用 Sonarqube 检查代码质量。当我运行 SonarQube 工具时,它显示我需要重构我使用 LINQ 的代码。这是它显示的确切行。

Drop 'Where' and move the condition into the 'First'.

我已经搜索了很多,但不明白它想说什么。谁能向我解释如何重构这条线,使其通过 SonarQube 的期望。
任何输入都非常有帮助。谢谢。

最佳答案

您分两步执行操作,而您可以使用 First 执行此操作 lambda 表达式

string custName = order.First(s => s.Key == "o123").Value;

Linq 方法 First定义:

First<TSource>(this IEnumerable<TSource>, Func<TSource, Boolean>)
  • 第一个参数是您正在使用的 IEnumerable(Linq 是扩展方法)
  • 第二个参数允许您设置过滤器声明 Func<TSource, Boolean>作为参数,您可以将其定义为 s => s.Key == "o123"

关于c# - 删除 'Where' 并将条件移动到 LINQ 中的 'First',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51440226/

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