Форум программистов, компьютерный форум, киберфорум
LINQ
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
15 / 15 / 1
Регистрация: 23.10.2010
Сообщений: 83
1

Как сгруппировать объекты в классе

03.09.2012, 21:56. Показов 1536. Ответов 8
Метки нет (Все метки)

Всем привет!

Вопрос такой: есть класс к примеру- со свойством Name типа string и со свойством Model типа List<string>. По сути класс абстрактно описывает некоторую коробку с именем, в которой лежат детальки. Нужно сгруппировать объекты этого класса в соответствии с детальками в list'е.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.09.2012, 21:56
Ответы с готовыми решениями:

Как программно сгруппировать выбранные объекты в Word
В Word есть набор объектов типа Shape нужно среди них выбрать несколько по определенному признаку ...

Как правильно объявлять статические константные объекты в классе?
В классе надо объявить статичные константные строки. Типа class A { public: static const...

Как сравниваются объекты (элементы массива) в классе ArrayList?
Как сравниваются объекты (элементы массива) в классе ArrayList? Random rnd = new Random(); ...

Как объявить массив объектов одного класса в другом классе, а затем поместить в него объекты?
Как объявить массив объектов одного класса в другом классе, а затем поместить в него объекты?

8
748 / 547 / 48
Регистрация: 17.06.2010
Сообщений: 1,041
Записей в блоге: 1
04.09.2012, 11:29 2
LieCatcher, то есть у каждого экземпляра класса свое свойство с набором данных? Так? Далее вы создаете несколько экземпляров класса. У каждого свой набор в свойстве Model. Что вы хотите группировать? Я не очень понял.
0
15 / 15 / 1
Регистрация: 23.10.2010
Сообщений: 83
04.09.2012, 12:30  [ТС] 3
C#
1
2
3
4
5
6
class MyClass
{
  public string Name{} - ну тут имя как имя
  public List<string> Model{}- а здесь хранятся детали какиенибудь, вернее их названия
 
}
так вот создаем объекты типа MyClass, а нужно сгруппировать именно по деталькам к примеру.
есть деталь: кардан, колесо, руль. нужно сгруппировать так чтобы было ясно в каких объектах есть руль, в каких есть кардан а в каком колесо.
0
32 / 30 / 7
Регистрация: 16.08.2012
Сообщений: 126
04.09.2012, 13:03 4
C#
1
group
в LINQ есть.
0
748 / 547 / 48
Регистрация: 17.06.2010
Сообщений: 1,041
Записей в блоге: 1
04.09.2012, 13:05 5
Вот пример сортировки по имени свойства массива объектов. Он не совсем решает вашу задачу, но суть можно взять из этого примера.
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            List<Box> ArrBox = new List<Box>();
 
            for (int i = 0; i < 10; i++)
            {
                ArrBox.Add(new Box("Box " + (i + 1).ToString()));
            }
 
            IEnumerable<Box> names = from n in ArrBox orderby n.Name select n;
 
            String s = null;
            foreach (Box nm in names)
            {
                s += nm.Name + "\n";
            }
 
            MessageBox.Show(s);
        }
    }
 
    public class Box
    {
        private string name;
        public Box(string name)
        {
            this.name = name;
        }
 
        public string Name
        {
            get { return this.name; }
            set { this.name = value; }
        }
    }
}
0
32 / 30 / 7
Регистрация: 16.08.2012
Сообщений: 126
04.09.2012, 13:39 6
попробуй так

C#
1
2
3
4
  List<Myclass> mclist = new List<Myclass>();
 
            var detals = from n in mclist
                      group n by n.Name;
0
15 / 15 / 1
Регистрация: 23.10.2010
Сообщений: 83
04.09.2012, 19:57  [ТС] 7
В том то и суть, что мне не по имени нужно, а вот по содержимому списка и причем не из одного объекта а из нескольких.
то есть что-то по сути
C#
1
2
var detals = from n in mclist
                      group n by n.Model;
но model ведь список и по списку он бегать как я понял не собирается)
0
748 / 547 / 48
Регистрация: 17.06.2010
Сообщений: 1,041
Записей в блоге: 1
04.09.2012, 20:23 8
Цитата Сообщение от LieCatcher Посмотреть сообщение
но model ведь список и по списку он бегать как я понял не собирается)
можно сделать вложенный запрос
0
Эксперт .NET
15343 / 11630 / 3052
Регистрация: 17.09.2011
Сообщений: 19,468
04.09.2012, 21:51 9
C#
1
2
3
4
5
var query = from mclass in mclist
   from model in mclass.Model
   group mclass by model;
foreach (var group in query)
   Console.WriteLine("{0}: {1}", group.Key, string.Join(", ", group.Select(mc => mc.Name)));
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.09.2012, 21:51

Внешние объекты в классе
Если класс исплользует какую то внешнюю переменную (например hWnd), то как будет более корректно...

Объекты в классе, который находится в DLL
Здравствуйте. Недавно, в ходе составления одной программы, наткнулся на одну маленькую неучтивость....

Удалить все объекты, которые находятся в классе
Привет! Есть класс Element и стек объектов данного класса. Нужно удалить все объекты, которые...

не видны переменные и объекты которые глобально объявлены в классе
Здравствуйте. У меня следующая проблема: Делал прогу месяц назад, но по причине отъезда ее...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.