您确实应该开始使用将这些信息封装在一个实体中的类,例如:
public class Fruit
{
public string Name {get; set;}
public string Color {get; set;}
}
那么它就很容易阅读:
List<Fruit> fruits = new()
{
new Fruit{ Name = "Banana", Color = "Yellow" },
new Fruit{ Name = "Apple", Color = "Red" },
new Fruit{ Name = "Orange", Color = "Orange" }
};
var orderedFruits = fruits.OrderBy(f => f.Name);
如果你想对原始列表进行排序,只需追加ToList
广告重新分配它:
fruits = fruits.OrderBy(f => f.Name).ToList();
如果您确实必须使用两个相互依赖的单独列表,那么您could use Zip
:
List<string> fruitNames = new() { "Banana", "Apple", "Orange" };
List<string> fruitColors = new() { "Yellow", "Red", "Orange" };
List<(string Name, string Color)> orderedFruits = fruitNames
.Zip(fruitColors, (n, c) => (Name: n, Color: c))
.OrderBy(x => x.Name)
.ToList();
fruitNames = orderedFruits.Select(x => x.Name).ToList();
fruitColors = orderedFruits.Select(x => x.Color).ToList();