【问题标题】:how to check for a value in a list of decimal C# [duplicate]如何检查十进制C#列表中的值[重复]
【发布时间】:2019-01-15 00:03:28
【问题描述】:

如何检查十进制 C# 列表中是否存在十进制值。

我想实现以下目标,但我正在寻找正确的方法来比较小数列表中的小数。

decimal value = 100;
List<decimal > Amounts = new List<decimal>() { 20, 30 };
I want to compare if 
Amounts.Any(value)
//do something
else
do something

【问题讨论】:

  • 我正在使用 if(Amounts.Contains(decimal.Parse(stringValue, NumberStyles.Currency)))
  • 请不要编辑问题的答案。如果您觉得问题不再是问题删除是更好的选择。如果您在尝试找到bing.com/search?q=c%23+value+in+list 之前真的觉得没有人,请随时edit 提出问题以澄清您的案例是如何独特的(因此可以重新打开帖子),然后为您提供answer(而不是对问题的编辑)。
  • 我没有投反对票,但在提问之前你应该自己做一些研究。如何在 C# 中搜索列表中的值已经在互联网上进行了全面介绍。
  • 重复的答案是特定于 Linq 的,这个问题可以在没有 Linq 的情况下使用 List.Contains() 来回答,正如@Learner 所发现的那样。不管有没有 Linq,.Contains() 都是正确的方法。

标签: c# .net c#-4.0 compare decimal


【解决方案1】:

您可以从这里使用 .Find() 方法:

List.Find(Predicate) Method

例子:

decimal valueToFind = 100;
List<decimal> amounts = new List<decimal>() { 20, 30 };
var result = amounts.Find(x => x == valueToFind);

if (result == 0){
    //not found
}
else if (result == valueToFind){
    //found
}

【讨论】:

  • 嗨,特洛伊,您对我的方法的回答有何不同?我使用 Contains 的方法会抛出异常?与您的稳健性相比?
  • 你的对我来说看起来不适合我是外行
  • @learner "Find" 将返回找到的项目,"Contains" 将返回一个布尔值,指示是否找到该项目。根据您要达到的目标,“包含”可能对您更有用。
  • 谢谢特洛伊,很高兴知道它会返回像相交这样的实际项目。所以它与 intersect 是相似的吗?唯一相交的是字符串。?很高兴知道。
  • 我给了你一个大拇指,也勾选了你的答案,你打算帮助我和你的时间。
猜你喜欢
  • 1970-01-01
  • 2015-07-26
  • 1970-01-01
  • 2014-06-25
  • 2015-05-07
  • 2015-01-03
  • 2011-11-16
  • 2017-09-28
  • 2021-02-05
相关资源
最近更新 更多