Вы можете использовать словарь для этого.
import UIKit
struct TestData {
let Label : String
var Money : Double
}
var SaveDate = [TestData]()
SaveDate.append(TestData(Label: "test1", Money: 55))
SaveDate.append(TestData(Label: "test1", Money: 35))
SaveDate.append(TestData(Label: "test2" , Money: 15))
SaveDate.append(TestData(Label: "test1" , Money: 10))
SaveDate.append(TestData(Label: "test3" , Money: 30))
var dictionaryOfValues:[String:Double] = [:]
func addUp() {
for currentItem in SaveDate {
dictionaryOfValues[currentItem.Label] = (dictionaryOfValues[currentItem.Label] == nil ? currentItem.Money : dictionaryOfValues[currentItem.Label] + currentItem.Money)
}
}
addUp()
print(dictionaryOfValues) //["test1": 100.0, "test2": 15.0, "test3": 30.0]
Я запустил это на Swift Playground.
Словарь может отслеживать, когда вы столкнулись с меткой или нет. Причина, по которой я это делаю dictionaryOfValues[currentItem.Label] = (dictionaryOfValues[currentItem.Label] == nil ? currentItem.Money : dictionaryOfValues[currentItem.Label] + currentItem.Money)
, заключается в том, что ему необходимо либо 1) добавить его в словарь, либо 2) добавить текущее значение к значению, уже существующему в словаре.
Всякий раз, когда вы будете готовы, вы можете позвонить addUp()
, и он сделает всю работу за вас.
Если у Вас есть свой блок модульного теста под названием Company.Component.Tests.dll, то просто удостоверяются та Компания. Компонент. Tests.dll.config там с надлежащей строкой подключения.
Кроме того, это могла бы быть хорошая идея отделить Ваш класс поставщика соединения из конфигурации, так, чтобы у Вас была гибкость в персистентности (т.е.: переключение от *.config до чего-то еще) и более легкое тестирование.
Также выезд, "Как NUnit Находит Файлы конфигурации"
Можно использовать app.config для библиотек (где я предполагаю, что тесты), и поместите их там.
То, где .config файлы для тестов NUnit расположены, сложно, чем другие сообщения здесь предлагают. Существуют настройки для этого в диалоге Проекта/Редактирования GUI NUnit. Значения по умолчанию все зависят от того, как Вы создали свой файл проекта NUnit.
Когда Вы открываете NUnit GUI, и выбор Регистрируют/Открывают и затем выбирают .dll файл, новый проект будит набор с настройками для поиска файла конфигурации с тем же именем как dll в том же каталоге. Таким образом, если Вы загрузились \bin\debug\MyTests.dll
NUnit ищет \bin\Debug\MyTests.dll.config
по умолчанию. Единственная проблема с этим состоит в том, что при создании сборки конечных версий, необходимо создать отдельный проект NUnit.
При создании проекта NUnit путем выбора File/NewProject затем, настройка по умолчанию должна искать файл конфигурации с тем же именем как проект NUnit. Таким образом, если Вы создали \MyNUnitProject.nunit
NUnit ищет \MyNUnitProject.config
по умолчанию.
Возможности - Вы, использовали Visual Studio для создания \App.config
файл и застрявший это в исходной папке для Вашего теста dll. Когда Вы buld Ваш тестовый проект это копируется в \bin\Debug\MyTests.dll.config
или \bin\Release\MyTests.dll.config
в зависимости от конфигурации Вы выбрали. При открытии MyTest.dll непосредственно в NUnit, это будет хорошо работать, однако при создании нового проекта NUnit, Вы в беде, поскольку он не будет искать эти файлы по умолчанию.
Для решения вопроса, необходимо открыть диалоговое окно Проекта/Редактирования в GUI NUnit и проверить, что у Вас есть две Отладки Конфигураций и Выпуск для соответствия проекту .NET. После того как Вы сделали это, можно выбрать Настройку отладочного процесса и установить ApplicationBase на bin\Debug\
и определенный Имя Конфигурационного файла к MyTests.dll.config
. Сделайте то же для конфигурации Выпуска, и далеко Вы идете.