Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как избавится от foreach / 13 сообщений из 13, страница 1 из 1
24.04.2020, 18:46
    #39951143
RegisteredUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавится от foreach
есть такие классы:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public class HistoryData
{
    public string GroupDate { get; set; }
    public List<Order> Orders { get; set; }
}

public class Order
{
    public OrderInfo OrderFullData { get; set; }
}



обработка идет вот так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
...
   var datas = resultData.OrdersInfoData
                                   .OrderBy(r => r.OrderNumber)
                                   .GroupBy(r => r.OrderDate)
                                   .ToDictionary(v => v.Key, v => v.Select(p => p))
                                   .ToList();
...



с двумя foreach заполняется все хорошо и правильно,
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
                        responseArchiveOrders.HistoryDatas = new List<HistoryData>();

                        foreach (KeyValuePair<DateTime, IEnumerable<OrderInfo>> item in datas)
                        {
                            HistoryData itemHistoryData = new HistoryData();

                            itemHistoryData.GroupDate = item.Key.ToString("yyyy-MM-dd");

                            itemHistoryData.Orders = new List<Order>();
                            foreach (var itemOrders in item.Value.ToList())
                            {
                                Order itemOrderData = new Order();
                                itemOrderData.OrderFullData = itemOrders;
                                itemHistoryData.Orders.Add(itemOrderData);
                            }

                            responseArchiveOrders.HistoryDatas.Add(itemHistoryData);
                        }	


но хочется переписать это красиво БЕЗ foreach
типа так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
                        d1.All(e =>
                        {
                            new HistoryData()
                            {
                                GroupDate = e.Key.ToString("yyyy-MM-dd"),
                                Orders = //??????? не могу написать заполнение без foreach
                            };
                            return true;
                        }
                        );	


Помогите плиз
...
Рейтинг: 0 / 0
24.04.2020, 18:48
    #39951144
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавится от foreach
RegisteredUser
красиво
RegisteredUser
Код: c#
1.
 d1.All(e =>

нет, это НЕкрасиво
...
Рейтинг: 0 / 0
24.04.2020, 18:50
    #39951146
RegisteredUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавится от foreach
Shocker.Pro
RegisteredUser
красиво
RegisteredUser
Код: c#
1.
 d1.All(e =>

нет, это НЕкрасиво


вот и вопрос в этом.
покажите красиво
...
Рейтинг: 0 / 0
24.04.2020, 18:51
    #39951147
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавится от foreach
RegisteredUser
Код: c#
1.
2.
3.
4.
5.
6.
7.
                            itemHistoryData.Orders = new List<Order>();
                            foreach (var itemOrders in item.Value.ToList())
                            {
                                Order itemOrderData = new Order();
                                itemOrderData.OrderFullData = itemOrders;
                                itemHistoryData.Orders.Add(itemOrderData);
                            }

это пишется так
Код: c#
1.
itemHistoryData.Orders = item.Value.Select(n => new Order { OrderFullData = itemOrders }).ToList()



Второй цикл по аналогии
...
Рейтинг: 0 / 0
24.04.2020, 18:52
    #39951150
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавится от foreach
RegisteredUser
покажите красиво
Код: c#
1.
responseArchiveOrders.HistoryDatas = datas.Select(...).ToList();
...
Рейтинг: 0 / 0
24.04.2020, 18:53
    #39951151
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавится от foreach
RegisteredUser
покажите красиво
Ещё красиво, когда вопросы, не относящиеся к ASP.NET, не задаются в ASP.NET
...
Рейтинг: 0 / 0
24.04.2020, 18:54
    #39951152
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавится от foreach
Shocker.Pro
это пишется так
Код: c#
1.
itemHistoryData.Orders = item.Value.Select(n => new Order { OrderFullData = itemOrders }).ToList()


Код: c#
1.
itemHistoryData.Orders = item.Value.Select(n => new Order { OrderFullData = n}).ToList()

поправка
...
Рейтинг: 0 / 0
24.04.2020, 19:00
    #39951155
RegisteredUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавится от foreach
Shocker.Pro
RegisteredUser
покажите красиво
Ещё красиво, когда вопросы, не относящиеся к ASP.NET, не задаются в ASP.NET

кусок кода как раз из ASP.NET
...
Рейтинг: 0 / 0
24.04.2020, 19:02
    #39951156
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавится от foreach
RegisteredUser
кусок кода как раз из ASP.NET
м-да
...
Рейтинг: 0 / 0
27.04.2020, 21:15
    #39952103
RegisteredUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавится от foreach
коллеги!
Что не так?
Код: c#
1.
2.
3.
4.
5.
                        responseArchiveOrders.HistoryDatas = d1.Keys.Select( k => new HistoryData()
                        {  
                            GroupDate = k.ToString("yyyy-MM-dd"),
                            Orders = d1.Values.Select(n => new Order()  { OrderFullData = n }).ToList()
                        });


Cannot implicitly convert type 'System.Collections.Generic.IEnumerable<Contracts.Entities.OrderInfo>' to 'Contracts.Entities.OrderInfo'. An explicit conversion exists (are you missing a cast?)
...
Рейтинг: 0 / 0
27.04.2020, 21:28
    #39952106
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавится от foreach
А почему ты стал использовать Values?
...
Рейтинг: 0 / 0
27.04.2020, 21:31
    #39952108
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавится от foreach
У тебя Values - это ICollection<IEnumerable<OrderInfo>>
Естественно n у тебя IEnumerable<OrderInfo>
А ты пытаешься присвоить его OrderFullData который OrderInfo
Что тебе и пишет сообщение об ошибке
В чем вопрос?
...
Рейтинг: 0 / 0
27.04.2020, 21:46
    #39952116
RegisteredUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавится от foreach
СПАСИБО!
Кажись нашел прикол
Код: c#
1.
2.
3.
4.
                        responseArchiveOrders.HistoryDatas = d1.Select( k => new HistoryData()
                        {   GroupDate = k.Key.ToString("yyyy-MM-dd"),
                            Orders= k.Value.Select(n => new Order() { OrderFullData = n }).ToList()
                        }).ToList();
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как избавится от foreach / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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