NSIndexSetを https://stackoverflow.com/a/28964059/6481734 の答えを使用して[Int]配列に変換しましたNSIndexSet。
IndexSet
は、次のように init(arrayLiteral:)
を使用して、配列リテラルから直接作成できます。
let indices: IndexSet = [1, 2, 3]
pbasdf's answer に似ていますが、 forEach(_:)
を使用します
let array = [1,2,3,4,5,7,8,10]
let indexSet = NSMutableIndexSet()
array.forEach(indexSet.add) //Swift 3
//Swift 2.2: array.forEach{indexSet.addIndex($0)}
print(indexSet)
これはSwift 3で非常に簡単になります:
let array = [1,2,3,4,5,7,8,10]
let indexSet = IndexSet(array)
うわー!
Swift 3 +
let fromRange = IndexSet(0...10)
let fromArray = IndexSet([1, 2, 3, 5, 8])
fromRange
オプションがまだ言及されていないため、この回答を追加しました。
Swift 4.2
既存の配列から:
let arr = [1, 3, 8]
let indexSet = IndexSet(arr)
配列リテラルから:
let indexSet: IndexSet = [1, 3, 8]
NSMutableIndexSet
およびそのaddIndex
メソッドを使用できます。
let array : [Int] = [1,2,3,4,5,7,8,10]
print(array)
let indexSet = NSMutableIndexSet()
for index in array {
indexSet.addIndex(index)
}
print(indexSet)