c#在对象集合中安属性条件筛选
时间: 2023-11-22 11:18:53 浏览: 38
在C#中,可以使用LINQ(Language-Integrated Query)来对对象集合进行筛选和查询。
假设我们有一个包含Person对象的List集合,每个Person对象都有一个Age属性,我们想要筛选出年龄大于等于18岁的Person对象,可以使用以下代码:
```
List<Person> personList = new List<Person>();
// 假设我们已经将Person对象添加到personList集合中
var filteredList = personList.Where(p => p.Age >= 18).ToList();
```
上述代码中,使用了Where方法来筛选出符合条件的Person对象,其中p => p.Age >= 18表示使用Lambda表达式来定义筛选条件。
通过ToList方法将筛选结果转换为List集合。筛选结果即为年龄大于等于18岁的Person对象集合。
除了Where方法之外,还有许多其他的LINQ方法可以用来对集合进行筛选和查询,例如OrderBy、GroupBy等。可以根据实际需求选择不同的方法。
相关问题
c#中对象集合筛选
在 C# 中,可以使用 LINQ (Language Integrated Query) 来筛选对象集合。LINQ 提供了一种方便的方式来查询和操作对象集合。
假设有一个对象集合 List<T>,可以使用 Where() 方法对集合进行筛选,例如:
```csharp
List<Person> persons = new List<Person>();
// 假设 persons 集合中有多个 Person 对象
// 筛选出所有年龄大于 18 岁的 Person 对象
var filteredPersons = persons.Where(p => p.Age > 18);
```
在上面的示例中,使用 Where() 方法筛选出所有年龄大于 18 岁的 Person 对象。其中,p => p.Age > 18 是一个 Lambda 表达式,用于指定筛选条件。
除了 Where() 方法,LINQ 还提供了一系列其他的方法,如 Select()、OrderBy()、GroupBy() 等,可以根据具体的需求进行使用。
c# 如何判断对象集合里面包含某个属性
要判断一个对象集合是否包含某个属性,可以使用 LINQ 查询语句和反射来实现。具体实现步骤如下:
1. 使用 LINQ 查询语句从对象集合中筛选出包含指定属性的对象。
2. 使用反射获取对象的属性列表。
3. 遍历对象集合中的每个对象,判断对象是否包含指定属性。
4. 如果对象包含指定属性,则返回 true,否则返回 false。
以下是示例代码:
```csharp
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
class Program
{
static void Main(string[] args)
{
List<Person> people = new List<Person>
{
new Person { Name = "Alice", Age = 28 },
new Person { Name = "Bob", Age = 30 },
new Person { Name = "Charlie", Age = 35 },
};
bool hasAge = HasProperty(people, "Age");
Console.WriteLine("Has Age property: " + hasAge);
bool hasGender = HasProperty(people, "Gender");
Console.WriteLine("Has Gender property: " + hasGender);
Console.ReadKey();
}
static bool HasProperty(IEnumerable<object> collection, string propertyName)
{
var type = collection.GetType().GetGenericArguments()[0];
var properties = type.GetProperties();
return properties.Any(p => p.Name == propertyName);
}
}
class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
```
在上面的示例中,我们定义了一个包含 Name 和 Age 两个属性的 Person 类,并创建了一个包含三个 Person 对象的 List。然后,我们分别判断该 List 是否包含 Age 和 Gender 两个属性。最终输出结果为:
```
Has Age property: True
Has Gender property: False
```
可以看到,HasProperty 方法可以判断对象集合是否包含指定的属性。