C# .Where lambda表达式中的System.Collections.Generic.List类型不支持比较运算符
我正在使用lambda表达式,我得到一个异常: System.NotSupportedException:'类型'System.Collections.Generic.List'1[System.Int32]不支持比较运算符' 在此摘录中,C# .Where lambda表达式中的System.Collections.Generic.List类型不支持比较运算符,c#,lambda,C#,Lambda,我正在使用lambda表达式,我得到一个异常: System.NotSupportedException:'类型'System.Collections.Generic.List'1[System.Int32]不支持比较运算符' 在此摘录中,MyPrettyFunction返回一个静态列表,而a.ValueA和B是int 谢谢你的帮助!多谢各位 你能分享完整的代码吗,因为下面的代码对我来说很好 namespace TestProjects { public class Test {
MyPrettyFunction
返回一个静态列表
,而a.ValueA
和B
是int
谢谢你的帮助!多谢各位 你能分享完整的代码吗,因为下面的代码对我来说很好
namespace TestProjects
{
public class Test
{
public int ID;
public int ValueA;
public int ValueB;
}
class Program
{
static void Main(string[] args)
{
List<Test> obj = new List<Test>
{
new Test{ID=1,ValueA=2,ValueB=3},
new Test{ID=2,ValueA=2,ValueB=3},
new Test{ID=3,ValueA=2,ValueB=3},
new Test{ID=4,ValueA=2,ValueB=3},
};
var Test= obj.Where(a => a.ID == 3 && MyPrettyFunction(a.ValueA).Contains(a.ValueB)).ToList();
}
public static List<int> MyPrettyFunction(int i)
{
return new List<int>{ 1,2,3,5};
}
}
}
命名空间测试项目
{
公开课考试
{
公共int ID;
公共价值a;
公共价值b;
}
班级计划
{
静态void Main(字符串[]参数)
{
List obj=新列表
{
新测试{ID=1,ValueA=2,ValueB=3},
新测试{ID=2,ValueA=2,ValueB=3},
新测试{ID=3,ValueA=2,ValueB=3},
新测试{ID=4,ValueA=2,ValueB=3},
};
var Test=obj.Where(a=>a.ID==3&&MyPrettyFunction(a.ValueA).Contains(a.ValueB)).ToList();
}
公共静态列表MyPrettyFunction(int i)
{
返回新列表{1,2,3,5};
}
}
}
这实际上是LINQ到EF(或类似)数据库的用法吗?这很重要-有些东西不能简单地翻译成SQL,我需要更多的代码来帮助你。@mathis1337你是什么意思?lambda很好-Where子句返回一个用于过滤结果的bool
。您的代码在一个简单的列表上运行良好。请发布一个复制问题的代码示例,或包含有关数据源的更多详细信息。这应该是注释,而不是注释answer@RufusLA.这对sundara(代表)来说还不可能,b:它不适合/格式;我个人:我同意here@MarcGravell好的,我们可以同意不同意。我认为:a)没有代表发表评论并不意味着评论应该作为答案发布,(b)示例代码不需要告诉OP他们的问题不符合给定的信息。我很高兴看到主持人在判断这些类型的答案时表现出一定的灵活性,这些答案不符合答案格式,但仍然有价值。在这种情况下,拥有一个功能完整的代码示例可能有助于OP通过评估差异来找出代码不起作用的原因。
namespace TestProjects
{
public class Test
{
public int ID;
public int ValueA;
public int ValueB;
}
class Program
{
static void Main(string[] args)
{
List<Test> obj = new List<Test>
{
new Test{ID=1,ValueA=2,ValueB=3},
new Test{ID=2,ValueA=2,ValueB=3},
new Test{ID=3,ValueA=2,ValueB=3},
new Test{ID=4,ValueA=2,ValueB=3},
};
var Test= obj.Where(a => a.ID == 3 && MyPrettyFunction(a.ValueA).Contains(a.ValueB)).ToList();
}
public static List<int> MyPrettyFunction(int i)
{
return new List<int>{ 1,2,3,5};
}
}
}