Unity list集合排序
时间: 2024-06-12 07:05:54 浏览: 123
list排序
Unity中的List集合可以使用Sort方法进行排序。
例如,如果我们有一个List<int>类型的列表,我们可以使用以下代码进行排序:
```csharp
List<int> myList = new List<int>{3, 7, 1, 5, 9};
myList.Sort();
```
这将按升序对myList进行排序。如果我们想要按降序排序,我们可以使用以下代码:
```csharp
List<int> myList = new List<int>{3, 7, 1, 5, 9};
myList.Sort((a, b) => b.CompareTo(a));
```
这里我们使用了lambda表达式来传递一个比较器函数。这个比较器函数将比较两个整数,如果第一个整数大于第二个整数,就返回一个正数,如果第一个整数小于第二个整数,就返回一个负数,如果两个整数相等,就返回0。在这个例子中,我们返回了b.CompareTo(a),这将使我们的列表按降序排序。
我们也可以使用自定义的比较器来排序。例如,假设我们有一个List<string>类型的列表,我们想按字符串长度进行排序。我们可以使用以下代码:
```csharp
public class StringLengthComparer : IComparer<string>
{
public int Compare(string x, string y)
{
return x.Length.CompareTo(y.Length);
}
}
List<string> myList = new List<string>{"cat", "dog", "elephant", "bird"};
myList.Sort(new StringLengthComparer());
```
这里我们定义了一个自定义的比较器类StringLengthComparer,它实现了IComparer<string>接口。我们在Compare方法中比较了两个字符串的长度。然后我们创建了一个新的StringLenghtComparer实例,并将其传递给Sort方法。这将使我们的列表按字符串长度进行排序。
阅读全文