Преобразуйте или отобразите список класса к другому списку класса при помощи Лямбды или LINQ?

Я удивлен, что никто не указал на хороший сайт: http://detectmobilebrowsers.com/ Он имеет готовый код на разных языках для мобильного обнаружения (включая, но не ограничиваясь):

  • Apache
  • ASP
  • C #
  • IIS
  • JavaScript
  • NGINX
  • PHP
  • Perl
  • Python
  • Rails

И если вам нужно также обнаружить планшеты, просто проверьте раздел About для дополнительного параметра RegEx.

Планшеты Android, планшеты iPad, Kindle Fires и PlayBook не определяются дизайном. Чтобы добавить поддержку для планшетов, добавьте |android|ipad|playbook|silk к первому регулярному выражению.

8
задан Community 23 May 2017 в 10:29
поделиться

2 ответа

Если два типа различны, вы должны использовать один и тот же Select для сопоставления с новым списком.

list2 = list1.Select( x => new MyData2() 
                                  { 
                                     //do your variable mapping here 
                                     PropertyB = x.PropertyB,
                                     PropertyC = x.PropertyC
                                  } ).ToList();

ИЗМЕНИТЬ ДОБАВИТЬ :

Теперь, когда вы изменили свой вопрос. Вы можете сделать что-нибудь подобное, чтобы исправить то, что вы пытаетесь сделать.

list2 = list1.Aggregate(new List<MyData2>(),
                 (x, y) =>
                {
                    if (y.PropertyList == null)
                    x.Add(new MyData2(null, y.PropertyB, y.PropertyC));
                    else
                    x.AddRange(y.PropertyList.Select(z => new MyData2(z, y.PropertyB, y.PropertyC)));

                        return x;
                }
            );
33
ответ дан 5 December 2019 в 04:58
поделиться
list2 = list1.ConvertAll<MyData>( a => a.MyConversion() )
4
ответ дан 5 December 2019 в 04:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: