Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / какой выбрать класс для хранения данных / 6 сообщений из 6, страница 1 из 1
14.05.2013, 15:30
    #38256783
lsk
lsk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какой выбрать класс для хранения данных
Подскажите, пожалуйста, что отпимальнее всего использовать для хранения такой информации:

1) Свойство 2) Количество раз сколько это свойство встретилось

Прохожу большое количество итераций, если встретилось новое свойство, то нужно его добавить и выставить во второе поле единичку; если свойство уже встречалось, то просто увеличить значение во второй колонке.
Дальше вторую колонку этого объекта буду использовать для других проверок.

Использую VS2012, C#
...
Рейтинг: 0 / 0
14.05.2013, 15:51
    #38256814
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какой выбрать класс для хранения данных
lsk, можно например Dictionary<string,int> использовать. Если "свойство" не строка, то подставь другой тип.
...
Рейтинг: 0 / 0
14.05.2013, 15:58
    #38256821
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какой выбрать класс для хранения данных
Код: c#
1.
var list = new List<MapProperty>();



Код: c#
1.
2.
3.
4.
5.
public class MapProperty
{
    public string Name { get; set; }
    public int Total { get; set; }
}
...
Рейтинг: 0 / 0
14.05.2013, 17:08
    #38256986
lsk
lsk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какой выбрать класс для хранения данных
спасибо
...
Рейтинг: 0 / 0
14.05.2013, 17:44
    #38257095
Denis.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какой выбрать класс для хранения данных
если итераций ну очень много то можно както так
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
private sealed class CounterWrapper
{
    public int Count { get; private set; }

    public void Inc()
    {
        Count = Count + 1;
    }
}

...
var dict = new Dictionary<string, CounterWrapper>();
foreach (var item in props)
{
    CounterWrapper outValue;
    if (!dict.TryGetValue(item, out outValue))
    {
        outValue = new CounterWrapper();
        dict.Add(item, outValue);
    }
    outValue.Inc();
}
...
...
Рейтинг: 0 / 0
15.05.2013, 06:56
    #38257534
LameUser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
какой выбрать класс для хранения данных
Я бы не стал для столь тривиальной задачи создавать врапперы и мапперы :)
Хотя опять же, я не знаю всей картины, зачем это нужно делать.

var propertiesDictionary = new Dictionary<string, int>();
var properties = new List<string>();

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
            foreach (string property in properties)
            {
                if (!propertiesDictionary.ContainsKey(property))
                {
                    propertiesDictionary[property] = 1;
                }

                else propertiesDictionary[property]++;
            }



Для любителей Linq и краткости кода:

Код: c#
1.
propertiesDictionary = properties.GroupBy(property => property).ToDictionary(grouped => grouped.Key, grouped => grouped.Count());        
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / какой выбрать класс для хранения данных / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]