Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
9 / 7 / 2
Регистрация: 26.12.2018
Сообщений: 278

Классы С#, Коллекции, LINQ запросы, Работа с массивом

03.12.2019, 05:23. Показов 2269. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброй ночи. Подскажите пожалуйста, как работать с э-тами массива класс, вообще - это вектор( поля длины, памяти, и сам массив) В лабораторной работе , мне нужно делать запросы через LINQ, но проблема в том, что я могу обратиться к длине, памяти, к примеру , найти пустой вектор или длина вектора равна , к примеру 6. А как сделать запрос: "первый вектор с отрицательным значением" то есть нужно делать перебор наших э-ов массива. Через функцию и цикл это организовать легко, а вот как через LINQ и лямбда-выражение подскажите пожалуйста, кто знает.
вот код, что у меня есть:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
public class MyVector
    {
 
        public int[] Arr { get; }
        public int Capacity { get; }
        public int Length { get; }
 
        // Конструктор с передачей вместимости вектора
        public MyVector(int length)
        {
            Length = length;
            Capacity = Length + 1;
            Arr = new int[Capacity];
        }
 
        // Конструктор с передачей значений массива
        public MyVector(IEnumerable<int> values) : this(values.Count())
        {
            int index = 0;
            foreach (int item in values)
                Arr[index++] = item;
        }
 
        private static readonly char[] separators = { ',', ' ', '/', '\\' };
        public static MyVector Parse(string source, params char[] separators)
             => new MyVector(source.Split(separators, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse));
        public static MyVector Parse(string source)
             => Parse(source, separators);
 
 
        public override string ToString()
        {
            return $"Capacity: {Capacity }\r\nLength : {Length }\r\n{string.Join(", ", Arr)}";
        }
    }
 
  static void ClassNegative() 
        {
            Console.WriteLine("Введите целые числа через пробел");
            MyVector v1 = MyVector.Parse(Console.ReadLine());
 
            Console.WriteLine("Введите целые числа через двоеточие");
            MyVector v2 = MyVector.Parse(Console.ReadLine(), ':');
 
            Console.WriteLine("Введите целые числа через точку");
            MyVector v3 = MyVector.Parse(Console.ReadLine(), '.');
 
            List<MyVector> vc = new List<MyVector>() { };
            vc.Add(v1);
            vc.Add(v2);
            vc.Add(v3);
            var result = vc.Where(x => x.Length == 0).ToList();
 
            Console.WriteLine(string.Join("\r\n", result));
 
        }
 
 static void Main(string[] args)
        {
           
            ClassNegative();
 
        }
То есть логика следующая, в классе у нас реализуется вектор, далее мы создаем объекты класса, добавляя каждый в List.

Добавлено через 25 минут
я примерно предпологаю, что оно вот так должно работать...
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 static void ClassMin() //Массив миник
        {       
            List<MyVector> vc = new List<MyVector>() { };
            vc.Add(new MyVector("Avg", 5, new int[4] { 7, 7, 6, 5 })); //имя //память&длина // сам массив
 
            Console.WriteLine("mini mas:");
            IEnumerable<MyVector> MiniVC = from x in vc
                                                where x.getMin()
                                                select x;
            foreach (vc x in MiniVC)
            {
                Console.WriteLine(x);
            }
            Console.WriteLine();
        }
но как сделать getMin()???
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.12.2019, 05:23
Ответы с готовыми решениями:

Классы С#, Коллекции, LINQ
Ещё раз привет. Уже сегодня писал по поводу LINQ. Нужна опять помощь( получается я добавил объекты класса Myvector в List. Но не понимаю...

работа с LINQ запросы
Всем привет, помогите сформировать LINQ-запрос на - получение коллекции заказчиков (Customer) из региона “Азия”. - получение коллекции...

Работа с массивом с помощью LINQ
Начал писать свою проблему и решил её.Вообще рад,что попал сюда на форум.Здесь люди мотивируют) Хотел бы показать свои задания и итог,к...

2
Эксперт .NET
 Аватар для Usaga
14321 / 9411 / 1356
Регистрация: 21.01.2016
Сообщений: 35,474
03.12.2019, 06:23
Anton006, у LINQ есть огромный список методов. Этот список описан и тщательно задокументирован.
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16150 / 11271 / 2890
Регистрация: 21.04.2018
Сообщений: 33,142
Записей в блоге: 2
03.12.2019, 10:03
Лучший ответ Сообщение было отмечено Anton006 как решение

Решение

Цитата Сообщение от Anton006
как сделать запрос: "первый вектор с отрицательным значением"
Метод First(Предикат) возвращает первый элемент для которого предикат возвращает истину.
Предикат может быть внешним методом принимающим один параметр типа элемента последовательности.
Для простых случаев (а их большинство) предикат создаётся сразу в методе с помощью лямбды.

Но надо иметь ввиду, что если не будет ни одного подходящего элемента - возникнет Исключение.
Есть аналогичный метод FirstOrDefault, который при отсутствии элементов возвращает элемент со значением по умолчанию. Для Nullable типов - это null.

Допустим, примеры получения первого вектора у которого первый элемент отрицательный и у которого хотя бы один элемент отрицательный.
C#
1
2
MyVector vector1 = vc.First( v => v.Arr[0] < 0);
MyVector vector2 = vc.First( v => v.Arr.Any(n => n<0));
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.12.2019, 10:03
Помогаю со студенческими работами здесь

Структуры данных, коллекции и классы-прототипы. Библиотечные классы коллекций
Ребят в чём ошибки? Нужно чтобы добавляло поля... которые я создал... далее вот продолжение самого задания Изменить приложение,...

Коллекции , поиск LINQ
Всем привет, такое задание , создать класс &quot;вектор&quot; в котором будет 1.int arr 2.capacity 3.len. Добавить его в коллекцию.и осуществить...

Фильтрация коллекции в LINQ
Добрый день, форумчане. Вопрос следующего характера. Имеется класс с такими полями: public class Blok { public int...

Выбор дублирующихся элементов в коллекции. LINQ
var newduplicateParts = allItems.GroupBy(x =&gt; x.Designation) .Where(g =&gt; g.Count() &gt; 1) .Select(y =&gt; y.Key)...

Сортировка свойств коллекции оьектов, используя Linq
Здравствуйте Сортирую коллекцию обектов, используя Linq по значениям свойств: using System; using...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru