c# list<> 自定义类
时间: 2023-09-13 14:07:48 浏览: 43
在 C# 中,我们可以使用 `List<T>` 类来存储一组相同类型的对象。如果我们想要在 `List<T>` 中存储自己定义的类的对象,需要按照以下步骤操作:
1. 定义自己的类,例如:
```csharp
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
```
2. 创建 `List<Person>` 对象,例如:
```csharp
List<Person> people = new List<Person>();
```
3. 添加对象到 `List<Person>` 中,例如:
```csharp
Person person1 = new Person { Name = "Tom", Age = 20 };
Person person2 = new Person { Name = "Jerry", Age = 25 };
people.Add(person1);
people.Add(person2);
```
4. 对 `List<Person>` 中的对象进行操作,例如:
```csharp
foreach (Person person in people)
{
Console.WriteLine("Name: {0}, Age: {1}", person.Name, person.Age);
}
```
这样就可以使用自定义的类在 `List<T>` 中存储对象了。
相关问题
C# list<> 排序
C#的List<>类提供了Sort()方法用于对列表进行排序。Sort()方法可以接受一个可选的比较器参数,以便根据自定义排序规则进行排序。
以下是一个示例,展示如何对List<>进行排序:
```csharp
List<int> numbers = new List<int> { 3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5 };
// 排序并输出结果
numbers.Sort();
foreach (var num in numbers)
{
Console.Write(num + " ");
}
Console.WriteLine();
// 使用自定义比较器排序并输出结果
numbers.Sort(new MyComparer());
foreach (var num in numbers)
{
Console.Write(num + " ");
}
Console.WriteLine();
// 自定义比较器实现
public class MyComparer : IComparer<int>
{
public int Compare(int x, int y)
{
if (x < y)
{
return -1;
}
else if (x > y)
{
return 1;
}
else
{
return 0;
}
}
}
```
在上面的示例中,我们首先创建一个包含一些整数的List<>,然后调用Sort()方法对其进行排序。默认情况下,Sort()方法使用默认比较器对列表进行排序。
接下来,我们定义了一个自定义比较器类MyComparer,并将其作为参数传递给Sort()方法,以便按照自定义的排序规则进行排序。在这个例子中,我们只是简单地比较了两个整数的大小,从而实现了升序排序。
C#List<List<string>>按某一列排序
要按照列表中的某一列进行排序,可以使用`List.Sort()`方法和自定义的比较器。以下是一个示例代码:
```csharp
// 假设你的列表是这样定义的
List<List<string>> data = new List<List<string>>();
// 定义一个比较器,按照第2列进行排序
class ColumnComparer : IComparer<List<string>>
{
private int columnIndex;
public ColumnComparer(int columnIndex)
{
this.columnIndex = columnIndex;
}
public int Compare(List<string> x, List<string> y)
{
return x[columnIndex].CompareTo(y[columnIndex]);
}
}
// 调用Sort方法进行排序
int sortColumnIndex = 1; // 按照第2列排序
data.Sort(new ColumnComparer(sortColumnIndex));
```
在这个例子中,我们定义了一个名为`ColumnComparer`的类,它实现了`IComparer<List<string>>`接口。通过传入要排序的列索引,`ColumnComparer`类可以比较两个列表的指定列,并返回比较结果。最后,我们调用`List.Sort()`方法,传入自定义的比较器即可完成按指定列排序的操作。