powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Linq & Коллекции
6 сообщений из 6, страница 1 из 1
Linq & Коллекции
    #38644960
ldar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я в ступоре, помогите плиз.
Имеется коллекция list классов lst, в каждом экземпляре классов есть поле с датой dt. Я с помощью метода запроса linq собрал экземпляры которые больше текущей даты и поместил в коллекцию list2. Это все норм. но мне необходимо в коллекции list изменить дату выбранных классов. Как это сделать?
Надеюсь понятно объяснил.
Код: 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.
class Program
    {
        class lst
        {
            public String name;
            public DateTime dt;
            public int val;

        }
        static void Main(string[] args)
        {
            DateTime date = DateTime.Now;
        List<lst> list = new List<lst>();
        List<lst> list2;
        list.Add(new lst() { name = "val1", dt = new DateTime(2014, 05, 18, 12, 01, 00), val = 1 });
        list.Add(new lst() { name = "val2", dt = new DateTime(2014, 05, 18, 12, 02, 00), val = 2 });
        list.Add(new lst() { name = "val3", dt = new DateTime(2014, 05, 18, 12, 03, 00), val = 3 });
        list.Add(new lst() { name = "val4", dt = new DateTime(2014, 05, 20, 12, 04, 00), val = 4 });
        list2 = list.Where(r => r.dt > date).ToList();
        foreach (var l in list)
        {
            Console.WriteLine("1 Имя{0}, Значение {1}, Дата  {2}",l.name,l.val, l.dt);
        }
        foreach (var l in list2)
        {
            Console.WriteLine("2 Имя{0}, Значение {1}, Дата  {2}", l.name, l.val, l.dt);
        }
        Console.ReadKey();
        }
    }
...
Рейтинг: 0 / 0
Linq & Коллекции
    #38644972
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ldar,

ну вон берите в первом foreach и меняйте, например.
...
Рейтинг: 0 / 0
Linq & Коллекции
    #38644992
ldar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zz,
А как мне соотнести эти коллекции. Как понять. что этот индекс соответствует тому.
Можно конечно через два forech сделать, но это имхо не красиво будет :)
...
Рейтинг: 0 / 0
Linq & Коллекции
    #38645015
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а зачем их соотносить?

Что надо сделать-то в итоге?
...
Рейтинг: 0 / 0
Linq & Коллекции
    #38645038
ldar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все, решил проблему без циклов, оказалось все очень просто. Создал метод в классе и при помощи 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.
class Program
    {
        class lst
        {
            public String name;
            public DateTime dt;
            public int val;
            public bool change()
            {
                if (dt > DateTime.Now)
                {
                    dt = DateTime.Now.AddMinutes(1);
                    return true;
                }
                else
                {
                    return false;
                }
                
            }

        }
        static void Main(string[] args)
        {
            DateTime date = DateTime.Now;
        List<lst> list = new List<lst>();
        List<lst> list2;
        list.Add(new lst() { name = "val1", dt = new DateTime(2014, 05, 18, 12, 01, 00), val = 1 });
        list.Add(new lst() { name = "val2", dt = new DateTime(2014, 05, 18, 12, 02, 00), val = 2 });
        list.Add(new lst() { name = "val3", dt = new DateTime(2014, 05, 18, 12, 03, 00), val = 3 });
        list.Add(new lst() { name = "val4", dt = new DateTime(2014, 05, 20, 12, 04, 00), val = 4 });
        //list2 = list.Where(r => r.dt > date).ToList();
            list2 = list.Where(r => r.change()).ToList();
        foreach (var l in list)
        {
            Console.WriteLine("1 Имя{0}, Значение {1}, Дата  {2}",l.name,l.val, l.dt);
        }
        foreach (var l in list2)
        {
            Console.WriteLine("2 Имя{0}, Значение {1}, Дата  {2}", l.name, l.val, l.dt);
        }
        Console.ReadKey();
        }
    }
...
Рейтинг: 0 / 0
Linq & Коллекции
    #38647625
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zzldar,

ну вон берите в первом foreach и меняйте, например.
+1
Еще один человек с IQ, превышающим масимально допустимое для программиста....
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Linq & Коллекции
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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