Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
2 / 2 / 1
Регистрация: 06.05.2014
Сообщений: 65
1

Замена элементов List<DataItem> которые больше заданного значения

28.07.2015, 22:22. Показов 1174. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Форумчане помогите пожалуйста, столкнулся с проблемой, как сделать так что бы перед добавление элементы которые больше к примеру 100000000 заменялись на 999999

Вот так идёт добавление:
C#
1
2
3
4
5
6
7
8
9
data = new Data();
                foreach (var line in parser.Parse(ofd.FileName, Encoding.Default))
                {
                    if (id == -1)
                        data.ColumnNames = line;
                    else
                        data.Add(new DataItem { Id = id, Items = line });
                    id++;
                }
C#
1
2
3
4
 public class Data : List<DataItem>
    {
        public List<string> ColumnNames;
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.07.2015, 22:22
Ответы с готовыми решениями:

Найти минимальное количество элементов массива, которые больше заданного значения
var A:array of integer; s,i,k,p:integer; begin p:=1; for i:=1 to 10 do begin A:=1; p:=p*i;...

Найти среднее арифметическое тех элементов массива, которые больше заданного значения Z
Дан массив X(N,M).Найти среднее арифметическое тех элементов массива, которые больше заданного...

Определить предикат Р(List,Х) который истинен если Х состоит из пар элементов списка List,сумма которых больше половины элементов List
Помогите пожалуйста написать программу,буду очень благодарен,заранее спасибо! Определить предикат...

Поменять элементы матрицы, которые больше заданного значения А, на 0
Задана матрица целых чисел, компонентами которой могут быть и нули. Сделать контрольный вывод...

12
18 / 18 / 4
Регистрация: 05.06.2012
Сообщений: 1,020
28.07.2015, 23:45 2
C#
1
 data.Add(new DataItem { Id = (id < 1000000) ? id : 999999, Items = line });
1
2 / 2 / 1
Регистрация: 06.05.2014
Сообщений: 65
29.07.2015, 00:01  [ТС] 3
VoltDeMar, Operator '<' cannot be applied to operands of type 'System.Collections.Generic.List<string>' and 'int'
И нужно не айдишник проверять, а собственно данные Items
0
18 / 18 / 4
Регистрация: 05.06.2012
Сообщений: 1,020
29.07.2015, 00:20 4
Такое подойдет при условии что line всегда содержит только числа в диапазоне от -2,147,483,648 до 2,147,483,647
C#
1
Items = (Convert.ToInt32(line) < 1000000) ? line : Convert.ToString(999999);
Для обеспечения безопасности кода лучше выполнить условия проверки преобразования line с обработкой исключения.

Добавлено через 2 минуты
Цитата Сообщение от Evdos Посмотреть сообщение
а собственно данные Items
Я правильно Вас понял, проверка выполняется над line?
0
2 / 2 / 1
Регистрация: 06.05.2014
Сообщений: 65
11.08.2015, 21:22  [ТС] 5
VoltDeMar, К сожалению это не решение, кроме того ошибку выдаёт

Добавлено через 32 секунды
Помогите товарищи
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
11.08.2015, 21:40 6
Evdos, а вы чего хотели? Максимум можно на long поменять, чтобы диапазон побольше был, но логика будет та же.

Добавлено через 33 секунды
C#
1
Items = (long.Parse(line) < 1000000) ? line : "999999";
0
2 / 2 / 1
Регистрация: 06.05.2014
Сообщений: 65
17.08.2015, 21:01  [ТС] 7
Psilon, а можно как-то перед добавлением делать проверку?
Просто в строках могут быть не только числа, но ещё и буквы, вот в чём проблема.
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
17.08.2015, 21:18 8
Evdos, ну делайте
C#
1
bool allDigits = "123".All(char.IsDigit);
0
16 / 16 / 8
Регистрация: 05.08.2015
Сообщений: 79
18.08.2015, 00:11 9
Цитата Сообщение от Evdos Посмотреть сообщение
foreach (var line in parser.Parse(ofd.FileName, Encoding.Default))
так нельзя делать. во первых вынести вот это
C#
1
parser.Parse(ofd.FileName, Encoding.Default)
выше самого цикла в переменную.

А во вторых лучше использовать какой-то TryParse и заключить результат в проверку if
иначе не ровен час будет exception. такое лучше предусматривать заранее.
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
18.08.2015, 00:39 10
rockandroll, число может быть числом, даже если не влезает в int/long.
1
16 / 16 / 8
Регистрация: 05.08.2015
Сообщений: 79
18.08.2015, 01:34 11
Psilon, ofd.FileName это 100% числа?

хотя, может я не понял условие и не ясно что там за паресер метод.
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
18.08.2015, 16:38 12
rockandroll, ну например:
C#
1
string s = "123185891258912589125891258912589125125";
Это ведь число.
0
16 / 16 / 8
Регистрация: 05.08.2015
Сообщений: 79
18.08.2015, 17:55 13
Цитата Сообщение от Psilon Посмотреть сообщение
rockandroll, ну например:
Код C#Выделить код
1
string s = "123185891258912589125891258912589125125";
Это ведь число.
спасибо за пояснения.
но мы, наверно, друг друга не поняли изначально.
0
18.08.2015, 17:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.08.2015, 17:55
Помогаю со студенческими работами здесь

Найти сумму элементов, которые больше заданного числа Р
помоготе пожалуйста!!! Задача №1.В массиве чисел А1,А2,….Аn. Найти сумму элементов, которые...

Определить количество элементов массива, которые больше заданного числа.
Дан числовой массив А, состоящий из n натуральных чисел. Определите количество элементов массива,...

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

Вычислить количество элементов массива, которые больше заданного числа
Вычислить : - кол-во элем. массива, которые больше вводимого числа ( С ). - произведение элем....

Найти произведение и количество элементов массива, которые больше заданного числа
Помогите пожалуйста. Добавлено через 1 минуту Для массива А(8) найти произведение и количество...

Найти количество элементов массива, которые больше некоторого заданного числа
Здравствуйте, помогите, пожалуйста, написать программу, которая выводит из массива количество...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru