C#二维list按每行第一个元素大小行排序
时间: 2023-07-16 08:14:23 浏览: 51
可以使用 LINQ 来实现按照每行第一个元素的大小进行排序。代码如下:
```csharp
List<List<int>> list = new List<List<int>>();
list.Add(new List<int>() { 5, 2, 3 });
list.Add(new List<int>() { 3, 4, 1 });
list.Add(new List<int>() { 1, 6, 2 });
List<List<int>> sortedList = list.OrderBy(l => l[0]).ToList();
```
以上代码中,我们首先定义了一个二维的 List,然后使用 `OrderBy` 方法按照每行第一个元素进行排序,并将排序后的结果转换为 List 类型。排序后的结果会保存在 `sortedList` 中。
需要注意的是,以上代码中的元素类型为 int,如果你的实际需求中元素类型不同,需要根据实际情况进行修改。
相关问题
C#二维list怎么使用
在C#中,二维 List 是一个可以存储多个列表(List)的列表(List)。二维 List 的基本用法如下:
1. 定义二维 List
```csharp
List<List<int>> list = new List<List<int>>();
```
2. 添加元素到二维 List 中
```csharp
List<int> sublist = new List<int>();
sublist.Add(1);
sublist.Add(2);
list.Add(sublist);
```
3. 访问二维 List 中的元素
```csharp
int element = list[0][1]; // 访问第一个列表的第二个元素
```
4. 遍历二维 List
```csharp
foreach(List<int> sublist in list) {
foreach(int element in sublist) {
Console.Write(element + " ");
}
Console.WriteLine();
}
```
以上就是 C# 中二维 List 的基本使用方法。
C#把指定长度的二维LIST复制另一个二维LIST
如果您需要复制一个指定长度的二维 `List<T>` 到另一个二维 `List<T>` 中,可以使用类似于上面的方法,但需要使用 `List<T>.GetRange()` 方法和 `Enumerable.Select()` 方法来分别获取每个内部列表的一部分并复制它们。下面是示例代码:
```csharp
List<List<int>> originalList = new List<List<int>>
{
new List<int> { 1, 2, 3 },
new List<int> { 4, 5, 6 },
new List<int> { 7, 8, 9 }
};
int startIndex = 1; // 复制的起始索引
int length = 2; // 需要复制的元素数量
List<List<int>> copiedList = originalList
.Select(l => l.GetRange(startIndex, length).ToList())
.ToList();
```
在上面的代码中,我们使用 `Select()` 方法来迭代原始列表中的每个内部列表,并在 `GetRange()` 方法中指定起始索引和长度来获取每个内部列表的一部分。我们再次使用 `ToList()` 方法将每个复制的内部列表转换为一个新的 `List<int>`。最终,我们使用 `ToList()` 方法将所有复制的内部列表转换为一个新的二维 `List<int>`,最终得到一个新的 `copiedList`,其中包含原始列表中每个内部列表从 `startIndex` 开始的 `length` 个元素。