2016-05-08 26 views
-2

我有一个元组数组。我想通过元组的第一个元素对列表进行排序。如何排序元组数组(String,String,int)

实施例:

var names = [("C","MTS",4),("A","MTS",3),("M","SMTS",1),("N","LEAD",5)]; 

我想通过元组

[("A","MTS",3),("C","MTS",4),("M","SMTS",1),("N","LEAD",5)]; 

请推荐的第一元件到他们在排序下面顺序。

回答

1

试试这个:

var names = [("C","MTS",4),("A","MTS",3),("M","SMTS",1),("N","LEAD",5)] 
names.sortInPlace{ $0.0 < $1.0 } 

// You can use this if it more clearly: 
// names.sortInPlace { (name1: (String, String, Int), name2: (String, String, Int)) -> Bool in 
     // return name1.0 < name2.0 
//} 

print(names) 
//[("A", "MTS", 3), ("C", "MTS", 4), ("M", "SMTS", 1), ("N", "LEAD", 5)] 
+0

它没有工作。抛出一个错误:“二进制运算符'<'不能应用于两个('String','String,Int)操作数 –

+0

也许你输入错了,它应该是'(String,String,Int)'不是'('String ','String,Int)'。我试过了,它对我很有用 – Khuong

+0

这一个工作:names.sortInPlace {(name1:(String,String,Int),name2:(String,String,Int)) - > Bool return name1.0

相关问题