Как преобразовать Систему. Linq. Счетный. WhereListIterator <интервал> для Списка <интервал>?

С jQuery я сделал это этот путь :

function checkKey(e){
     switch (e.keyCode) {
        case 40:
            alert('down');
            break;
        case 38:
            alert('up');
            break;
        case 37:
            alert('left');
            break;
        case 39:
            alert('right');
            break;
        default:
            alert('???');  
            }      
}

if ($.browser.mozilla) {
    $(document).keypress (checkKey);
} else {
    $(document).keydown (checkKey);
}

кроме того, попробуйте эти плагины, который похож, они делают всю эту работу для Вас:

http://www.openjs.com/scripts/events/keyboard_shortcuts

http://www.webappers.com/2008/07/31/bind-a-hot-key-combination-with-jquery-hotkeys/

12
задан Edward Tanguay 8 October 2009 в 12:34
поделиться

3 ответа

Вы должны использовать расширение ToList:

var evenScores = scores.Where(i => i % 2 == 0).ToList();
23
ответ дан 2 December 2019 в 04:33
поделиться
var evenScores = scores.Where(i => i % 2 == 0).ToList();

Не работает?

9
ответ дан 2 December 2019 в 04:33
поделиться

Кстати, почему вы объявляете prettyPrint с таким конкретным типом для параметра scores, а не используете этот параметр только как IEnumerable (я предполагаю, что именно так вы реализовали метод расширения ForEach)? Так почему бы не изменить подпись prettyPrint и оставить эту ленивую оценку? =)

Как это:

Action<IEnumerable<int>, string> prettyPrint = (list, title) =>
{
    Console.WriteLine("*** {0} ***", title);
    list.ForEach(i => Console.WriteLine(i));
};

prettyPrint(scores.Where(i => i % 2 == 0), "Title");

Обновление:

Или вы можете избежать использования List.ForEach таким образом (не учитывайте неэффективность конкатенации строк):

var text = scores.Where(i => i % 2 == 0).Aggregate("Title", (text, score) => text + Environment.NewLine + score);
1
ответ дан 2 December 2019 в 04:33
поделиться
Другие вопросы по тегам:

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