Я создал это для «детской площадки»):
struct Model {
let id: String
let placeId: String
init(id: String, placeId: String) {
self.id = id
self.placeId = placeId
}
}
extension Model {
static func all() -> [Model] {
let ids = ["ITCAw554sCHlN3A6q7Yl",
"n50cavoOJeRkjoRj11j3",
"TE9ubEqV0tw0Hf4h8tk7",
"TE9ubEqV0tw0Hf4h8tk7",
"TE9ubEqV0tw0Hf4h8tk7",
"ITCAw554sCHlN3A6q7Yl",
"mkCs25zSf3J8QTvpS81b",
"TE9ubEqV0tw0Hf4h8tk7",
"Gc5lnHAKWm1OyeMkA9e7",
"n50cavoOJeRkjoRj11j3",
"mkCs25zSf3J8QTvpS81b",
"mkCs25zSf3J8QTvpS81b",
"ITCAw554sCHlN3A6q7Yl",
"X9WyrvEE253keNdlbVZc",
"ITCAw554sCHlN3A6q7Yl"]
var models: [Model] = []
for (index, anId) in ids.enumerated() {
let aModel = Model(id: anId, placeId: String(index))
models.append(aModel)
}
return models
}
}
Затем я сделал это:
let initialModels = Model.all()
let shuffled = initialModels.shuffled()
print("shuffled:\n\(shuffled)")
Итак, shuffled
находится в неправильном «порядке». [ 1113]
Проблема с вашей текущей сортировкой в том, что id
не уникален. Вам нужно отсортировать по уникальному идентификатору, либо вычисленному, используя сравнение по нескольким свойствам и т. Д. Кроме того, вы не можете определить, какой из них встречается среди найденных вхождений, что, по вашему мнению, является комбинацией id
и [ 119] свойства.
let initialValues: [(String, String)] = initialModels.map({ ([112].id, [112].placeId) })
Для того, чтобы у вас было:
func sort(by idsAndPlaceId: [(String, String)]) -> [Model]
Тогда, потому что я не хотел использовать self
и т. Д., Но это можно было бы адаптировать:
Вывод:
[115]gt;shuffled:
[Model(id: "ITCAw554sCHlN3A6q7Yl", placeId: "0"),
Model(id: "n50cavoOJeRkjoRj11j3", placeId: "1"),
Model(id: "mkCs25zSf3J8QTvpS81b", placeId: "10"),
Model(id: "ITCAw554sCHlN3A6q7Yl", placeId: "5"),
Model(id: "X9WyrvEE253keNdlbVZc", placeId: "13"),
Model(id: "n50cavoOJeRkjoRj11j3", placeId: "9"),
Model(id: "ITCAw554sCHlN3A6q7Yl", placeId: "12"),
Model(id: "TE9ubEqV0tw0Hf4h8tk7", placeId: "4"),
Model(id: "mkCs25zSf3J8QTvpS81b", placeId: "11"),
Model(id: "Gc5lnHAKWm1OyeMkA9e7", placeId: "8"),
Model(id: "TE9ubEqV0tw0Hf4h8tk7", placeId: "3"),
Model(id: "ITCAw554sCHlN3A6q7Yl", placeId: "14"),
Model(id: "TE9ubEqV0tw0Hf4h8tk7", placeId: "2"),
Model(id: "TE9ubEqV0tw0Hf4h8tk7", placeId: "7"),
Model(id: "mkCs25zSf3J8QTvpS81b", placeId: "6")]
[115]gt;resorted:
[Model(id: "ITCAw554sCHlN3A6q7Yl", placeId: "0"),
Model(id: "n50cavoOJeRkjoRj11j3", placeId: "1"),
Model(id: "TE9ubEqV0tw0Hf4h8tk7", placeId: "2"),
Model(id: "TE9ubEqV0tw0Hf4h8tk7", placeId: "3"),
Model(id: "TE9ubEqV0tw0Hf4h8tk7", placeId: "4"),
Model(id: "ITCAw554sCHlN3A6q7Yl", placeId: "5"),
Model(id: "mkCs25zSf3J8QTvpS81b", placeId: "6"),
Model(id: "TE9ubEqV0tw0Hf4h8tk7", placeId: "7"),
Model(id: "Gc5lnHAKWm1OyeMkA9e7", placeId: "8"),
Model(id: "n50cavoOJeRkjoRj11j3", placeId: "9"),
Model(id: "mkCs25zSf3J8QTvpS81b", placeId: "10"),
Model(id: "mkCs25zSf3J8QTvpS81b", placeId: "11"),
Model(id: "ITCAw554sCHlN3A6q7Yl", placeId: "12"),
Model(id: "X9WyrvEE253keNdlbVZc", placeId: "13"),
Model(id: "ITCAw554sCHlN3A6q7Yl", placeId: "14")]
Да, можно соединиться с базой данных Oracle 8i с 10-граммовым клиентом, но 8i База данных требует 8.1.7.3 patchset, которые можно получить от сайта поддержки Метассылки Oracle (требует входа в систему).
Вот сообщение форума Oracle с деталями.
selecthome.bat
файл для переключения между установленными клиентами. Например, прежде, чем соединиться с 8i, Вы работали:
C:\Oracle\Client1_8i\bin\selecthome.bat
или это для использования клиента 10 г Oracle:
C:\Oracle\Client2_10g\bin\selecthome.bat
Я должен был подключить код C# к Oracle 7 (я знаю Вас, это 8...)... единственный способ, которым я добираюсь, это должно было заставить CD устанавливать Oracle Server и входить в "Дополнительный Компонент Конфигурации" и использовать Oracle73 Ver2.5.
Я думаю, что необходимо пойти, проверяют CD сервера Oracle 8 и проверки, если ODBC все еще доступен.