Mou*_*Mou 18 c# linq-to-objects
假设我将人类实例添加到列表然后我需要使用linq查询列表.
List lst=new List();
lst.add(new person{ID=1,Name="jhon",salaty=2500});
lst.add(new person{ID=2,Name="Sena",salaty=1500});
lst.add(new person{ID=3,Name="Max",salaty=5500});
lst.add(new person{ID=4,Name="Gen",salaty=3500});
Run Code Online (Sandbox Code Playgroud)
现在我想用linq查询上面的列表.请指导我的示例代码.
Jon*_*eet 20
好吧,你给出的代码开头是无效的 - List是泛型类型,它有一个Add方法而不是add等等.
但你可以这样做:
List<Person> list = new List<Person>
{
new person{ID=1,Name="jhon",salaty=2500},
new person{ID=2,Name="Sena",salaty=1500},
new person{ID=3,Name="Max",salaty=5500}.
new person{ID=4,Name="Gen",salaty=3500}
};
// The "Where" LINQ operator filters a sequence
var highEarners = list.Where(p => p.salaty > 3000);
foreach (var person in highEarners)
{
Console.WriteLine(person.Name);
}
Run Code Online (Sandbox Code Playgroud)
如果您想了解所有LINQ运算符的详细信息,以及如何在LINQ to Objects中实现它们,您可能会对我的Edulinq博客系列感兴趣.
var persons = new List<Person>
{
new Person {ID = 1, Name = "jhon", Salary = 2500},
new Person {ID = 2, Name = "Sena", Salary = 1500},
new Person {ID = 3, Name = "Max", Salary = 5500},
new Person {ID = 4, Name = "Gen", Salary = 3500}
};
var acertainperson = persons.Where(p => p.Name == "jhon").First();
Console.WriteLine("{0}: {1} points",
acertainperson.Name, acertainperson.Salary);
jhon: 2500 points
var doingprettywell = persons.Where(p => p.Salary > 2000);
foreach (var person in doingprettywell)
{
Console.WriteLine("{0}: {1} points",
person.Name, person.Salary);
}
jhon: 2500 points
Max: 5500 points
Gen: 3500 points
var astupidcalc = from p in persons
where p.ID > 2
select new
{
Name = p.Name,
Bobos = p.Salary*p.ID,
Bobotype = "bobos"
};
foreach (var person in astupidcalc)
{
Console.WriteLine("{0}: {1} {2}",
person.Name, person.Bobos, person.Bobotype);
}
Max: 16500 bobos
Gen: 14000 bobos
Run Code Online (Sandbox Code Playgroud)
因为你没有给任何指示,以什么你想要的,这里是所有使用不同的方法,LINQ LINQ 101个样本的链接:101个LINQ示例
此外,您应该真正真正将您更改List为强类型列表(List<T>),并正确定义T,并将T的实例添加到列表中.它将真正使查询更容易,因为您不必一直抛出所有内容.
| 归档时间: |
|
| 查看次数: |
100006 次 |
| 最近记录: |