C# LINQ语句查询

2019-01-02 20:30发布

一个List集合 SiemensShipmentWips里面有多个字段mawb,shipC、consC,RMB 四个字段。

需要根据字段mawb,shipC、consC 存在重复,并且RMB 小于5000金额的数据筛选出来。

请问使用LINQ语句如何编写查询条件?

标签: timer 查询
5条回答
裙下三千臣
2楼-- · 2019-01-02 21:00

 感觉你这个意思是list去重吧?

查看更多
永恒的永恒
3楼-- · 2019-01-02 21:04

class Program
{
static void Main(string[] args)
{
List<Student> list = new List<Student>();
list.Add(new Student {
a="1",
b="2",
c="3",
rmb=10000
});
list.Add(new Student
{
a = "1",
b = "2",
c = "3",
rmb = 3000
});
list.Add(new Student
{
a = "1",
b = "2",
c = "3",
rmb = 5000
});
list.Add(new Student
{
a = "1",
b = "3",
c = "3",
rmb = 10000
});
var result = list.Where(t1 => list.Any(t2 => t1.a == t2.a && t1.b == t2.b && t1.c == t2.c && t1.rmb <= 5000)).ToList();
Console.Read();
}
}
public class Student
{
public string a { get; set; }
public string b { get; set; }
public string c { get; set; }
public int rmb { get; set; }
}

试试。。。。。。。。。。

查看更多
君临天下
4楼-- · 2019-01-02 21:05

需要根据字段mawb,shipC、consC 存在重复 -----举个栗子

查看更多
孤独总比滥情好
5楼-- · 2019-01-02 21:20

//先筛选出RMB<500的集合项,再进行字段重复筛选.
SiemensShipmentWips = SiemensShipmentWips.Where(x => x.RMB < 500);
var result = SiemensShipmentWips.Where(x=>
SiemensShipmentWips.Count(c=>c.mawb == x.mawb)>1 ||
SiemensShipmentWips.Count(c=>c.shipC == x.shipC)>1 ||
SiemensShipmentWips.Count(c=>c.consC == x.consC )>1 ||
);

查看更多
爱死公子算了
6楼-- · 2019-01-02 21:20

ssws.where(a=>(a.mawb==a.shipC||a.mawb==a.consC ||a.shipC==a.consC ||)&&a.rmb<5000)

查看更多
登录 后发表回答