【问题标题】:Find the Non-integer value from a List<T> using LINQ or Lambda C# [duplicate]使用 LINQ 或 Lambda C# 从 List<T> 中查找非整数值 [重复]
【发布时间】:2014-06-25 11:56:48
【问题描述】:

我有一门课:

public class MyClass
{
  public string Name{set;get;}
  public string Value {set;get;}
  public int ParentId {set;get;}
}

My Class Value 属性可以具有以下值:“1”、“MyValue”、“2”....等等。

我有一个通用列表List&lt;MyClass&gt;,我必须使用 LAMBDA 或 LINQ 查看列表以获取非数值,即“我的值”。意味着我必须获取在其 Value 属性中具有“My Value”的 MyClass 实例。

任何建议将不胜感激。

【问题讨论】:

  • @sloth,所有项目在列表中必须是唯一的。

标签: linq c#-4.0 lambda


【解决方案1】:

听起来你想要这样的东西:

var nonInteger = list.Where(x =>
                            {
                                int ignored;
                                return !int.TryParse(x.Value, out ignored);
                            });

或者,将TryParse 调用包装在一个单独的方法中,甚至可能是一个扩展方法:

public static bool CanParseToInt32(this string value)
{
    int ignored;
    return int.TryParse(value, out ignored);
}

然后:

var nonInteger = list.Where(x => !x.Value.CanParseToInt32());

【讨论】:

  • @LasseV.Karlsen:完成。
  • 感谢您的解决方案。我试过了,但不适合我。
  • @SyedFasih:“但不为我工作”没有给我任何信息。什么地方出了错?它是否编译但给出了错误的结果?你有例外吗?你提供了什么输入,你期望什么输出,实际输出是什么?
  • 抱歉信息太少了,它没有给我任何价值。它必须给出具有字符串值的所需项目。
  • @SyedFasih:你的意思是它不匹配任何实例?它确实应该 - 并且该查询 will 为您提供具有无法解析为整数的 Value 属性的实例。如果您可以用一个简短但完整的示例来编辑您的问题,这将非常有帮助 - 然后我可以插入我尝试过的解决方案,看看它是否有效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多