使用LINQ或Lambda C#</t>从List <t>中查找非整数值

时间:2014-06-25 11:56:48

标签: linq c#-4.0 lambda

我有一个班级:

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

My Class Value属性可以包含以下值:&#34; 1&#34;,&#34; MyValue&#34;,&#34; 2&#34; ....等等。

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

非常感谢任何建议。

1 个答案:

答案 0 :(得分: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());