[Linq] Улучшилась ли читабельность?
От: 0K Ниоткуда  
Дата: 23.07.11 18:42
Оценка:
Было:

foreach (var item in itemList)
            {
                var nameValueList =
                    item.Attributes.Select(
                        attribute => new NameValue(new DataValue(attribute.Name), new DataValue(attribute.Value))).
                        ToList();

                var nameValuePackage = new NameValuePackage(new DataValue(item.Name), nameValueList);
                nameValuePackageList.Add(nameValuePackage);
            }


Сделал решарпер:

return (from item in itemList
                    let nameValueList = item.Attributes.Select(attribute => new NameValue(new DataValue(attribute.Name), new DataValue(attribute.Value))).ToList()
                    select new NameValuePackage(new DataValue(item.Name), nameValueList)).ToList();


Скажите поклав руку на сердце: улучшилась ли читабельность кода?
Re: [Linq] Улучшилась ли читабельность?
От: Jack128  
Дата: 23.07.11 18:48
Оценка:
Здравствуйте, 0K, Вы писали:

0K>Скажите поклав руку на сердце: улучшилась ли читабельность кода?


Нет, не улучшилась. А что ??
Re: [Linq] Улучшилась ли читабельность?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 23.07.11 19:06
Оценка: 1 (1) +6
Здравствуйте, 0K, Вы писали:

0K>Было:


0K>
0K>foreach (var item in itemList)
0K>            {
0K>                var nameValueList =
0K>                    item.Attributes.Select(
0K>                        attribute => new NameValue(new DataValue(attribute.Name), new DataValue(attribute.Value))).
0K>                        ToList();

0K>                var nameValuePackage = new NameValuePackage(new DataValue(item.Name), nameValueList);
0K>                nameValuePackageList.Add(nameValuePackage);
0K>            }
0K>


0K>Сделал решарпер:


0K>
0K>return (from item in itemList
0K>                    let nameValueList = item.Attributes.Select(attribute => new NameValue(new DataValue(attribute.Name), new DataValue(attribute.Value))).ToList()
0K>                    select new NameValuePackage(new DataValue(item.Name), nameValueList)).ToList();
0K>


0K>Скажите поклав руку на сердце: улучшилась ли читабельность кода?


Как было что-то непонятное так и осталось, вот только Linq тут не при чем совершенно.
Re: [Linq] Улучшилась ли читабельность?
От: iHateLogins  
Дата: 24.07.11 15:11
Оценка:
Здравствуйте, 0K, Вы писали:

0K>Скажите поклав руку на сердце: улучшилась ли читабельность кода?


Нет.
Re: [Linq] Улучшилась ли читабельность?
От: monax  
Дата: 25.07.11 07:44
Оценка:
Здравствуйте, 0K, Вы писали:

0K>Скажите поклав руку на сердце: улучшилась ли читабельность кода?


может всё-таки "положив руку на сердце"?
Re: [Linq] Улучшилась ли читабельность?
От: Lloyd Россия  
Дата: 25.07.11 07:48
Оценка:
Здравствуйте, 0K, Вы писали:

0K>Скажите поклав руку на сердце: улучшилась ли читабельность кода?


Я бы сделал вот так:
var q = from item in itemList
        let nameValues = from attribute in item.Attributes
                         select new NameValue(new DataValue(attribute.Name), new DataValue(attribute.Value))
        select new NameValuePackage(new DataValue(item.Name), nameValues.ToList())
return q.ToList();
Re[2]: [Linq] Улучшилась ли читабельность?
От: Ziaw Россия  
Дата: 25.07.11 08:42
Оценка: +1
Здравствуйте, Lloyd, Вы писали:

L>Я бы сделал вот так:

L>
L>var q = from item in itemList
L>        let nameValues = from attribute in item.Attributes
L>                         select new NameValue(new DataValue(attribute.Name), new DataValue(attribute.Value))
L>        select new NameValuePackage(new DataValue(item.Name), nameValues.ToList())
L>return q.ToList();
L>


А я бы так:
var q = from item in itemList
        let nameValues = item.Attributes.Select(a => new NameValue(new DataValue(a.Name), new DataValue(a.Value))
        select new NameValuePackage(new DataValue(item.Name), nameValues.ToList())
return q.ToList();


К топикстартеру: по мне так читабельность заметно выросла по сравнению с вариантом совсем без linq:

foreach (var item in itemList)
{
    var nameValueList = new List<NameValue>();
    foreach (var attribute in item.Attributes)
    {
       nameValueList.Add(new NameValue(new DataValue(attribute.Name), new DataValue(attribute.Value)));
    }

    var nameValuePackage = new NameValuePackage(new DataValue(item.Name), nameValueList);
    nameValuePackageList.Add(nameValuePackage);
}
Re: [Linq] Улучшилась ли читабельность?
От: Klapaucius  
Дата: 25.07.11 10:29
Оценка: +1
0K>улучшилась ли читабельность кода?

Да.
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[3]: [Linq] Улучшилась ли читабельность?
От: Ночной Смотрящий Россия  
Дата: 25.07.11 22:24
Оценка: -1
Здравствуйте, Ziaw, Вы писали:

Z>А я бы так:

Z>
Z>var q = from item in itemList
Z>        let nameValues = item.Attributes.Select(a => new NameValue(new DataValue(a.Name), new DataValue(a.Value))
Z>        select new NameValuePackage(new DataValue(item.Name), nameValues.ToList())
Z>return q.ToList();
Z>


Забил бы тогда уж совсем на query comprehension, чего уж там.
Re: до сих пор плохо воспринимаю LINQ
От: Философ Ад http://vk.com/id10256428
Дата: 29.07.11 11:03
Оценка:
особенно когда просматриваешь код на "потенциальную тормознутость", прикидывая сложность
Всё сказанное выше — личное мнение, если не указано обратное.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.