You could use a custom comparer class
Tuple<string, int, string>[] lst =
{
new Tuple<string, int, string>("z", 1, "z"),
new Tuple<string, int, string>("a", 2, "a"),
new Tuple<string, int, string>("d", -1, "d")
};
Array.Sort(lst, new MyTupleComparer());
foreach (var item in lst)
{
Console.WriteLine(item.Item2);
}
public class MyTupleComparer : Comparer<Tuple<string, int, string>>
{
public override int Compare(Tuple<string, int, string> x, Tuple<string, int, string> y)
{
return x.Item2.CompareTo(y.Item2);
}
}