Как вы упомянули, вы хотели бы использовать Linq. У выбора в LINQ есть переопределение, которое позволяет вам выставлять индекс. Получение первого совпадающего значения даст нам индекс вхождения. Вы также можете заменить .FirstOrDefault()
на .ToList()
, если хотите, чтобы все индексы соответствовали.
ToList
char[] _alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToArray();
var code = "b";
var key = _alpha.Select((s, i) => new { i, s })
.Where(t => t.s.ToString().ToUpper() == code.ToUpper())
.Select(t => t.i)
.ToList();
В качестве альтернативы вышеупомянутое также может быть записано как
FirstOrDefault
return _alpha.Select((s, i) => new { i, s }).FirstOrDefault(t => t.s.ToString().ToUpper() == code.ToUpper()).i;
Несколько месяцев назад я искал и ничто не нашел (удовлетворительным). Я должен был реализовать свою собственную библиотеку программ управления. Отсутствие хороших существующих "сенсорно-осведомленных" библиотек заставляет меня думать, что я должен коммерциализировать мой, но это очень неполно.
Я знаю, что Resco имеет некоторый основанный на "касании" список и средства управления сеткой для Windows Mobile .NET. Мы используем часть их материала (но не "сенсорные" функции), и они удались довольно хороший для нас до сих пор. Вот их SmartGrid.NET управление, например.
Мы фальсифицировали много статических анимаций путем создания .png последовательностей в Adobe после эффектов и затем вращения изображений в Поле изображения.
Мирабайт недавно выпустил Touch Controls , который предлагает очень гибкий элемент управления для списков и меню. В также есть функции, такие как кинетическая прокрутка. Хорошо, что это 100% компонент .NETCF.
mirabyte, кажется, неплохо, но вы не можете попробовать в каком-нибудь тестовом приложении их компонент сенсорного управления, они предоставляют только образец приложения. В противном случае вы не увидите, как заглянуть внутрь своего приложения.
На мой взгляд, вам следует выбрать resco, они уже много лет работают на платформе PocketPC и знают, какова производительность и масштабируемость приложений, удобство использования, удобство использования и т. Д.
Наконец, мне нравится последняя версия мобильного приложения от resco. studio 2009.
На выходных я купил Mirabyte Touch Controls v1.0.
[Вышла версия 1.5]
Положительный момент:
Негатив
В общем, я бы порекомендовал их, они дают вам хороший способ создания iPhone, как пользовательский интерфейс. Просто имейте в виду, что проблемы все еще возникают, и отсутствует документация.
Существует также проект с открытым исходным кодом под названием Fluid Controls. Они живут здесь . Здесь есть реализация .
Похоже, с ее помощью можно создать несколько хороших интерфейсов, однако для этого требуется довольно много кода.
Например, для создания списка требуется унаследованный ListBox класс с шаблоном, который явно создает и позиционирует все ваши элементы управления.
Тем не менее, это хороший способ пойти, если вы не хотите раскошелиться на 50 евро за Mirabyte или 600 долларов за инструменты Roscos.
pocketwit имеет открытый исходный код и классный интерфейс
http://code.google.com/p/pocketwit/
Kinetic List - Основной список реализует " кинетическая прокрутка ». Боковые меню - Меню действий расположены по бокам от главного меню. Поэтому, если вы перетащите список влево или вправо, вы увидите меню действий рядом со списком.
Вы также можете изучить SlideUI .NET CF UI Controls , которые наша компания использует для разработки Win Mobile. Он содержит богатый список доступных элементов управления во время разработки, оптимизированных для пальцев (кнопки, редактирование, область рисования, список кинетической прокрутки и т. Д.). Посетите веб-сайт SlideUI по адресу www.devslide.com/products/slideui
Если вы ищете iPhone-подобный GUI на Windows Mobile, посмотрите на Bee Mobile по адресу http://beemobile4.net
Они предлагают свой iPack - пакет элементов управления .NET CF, которые обеспечивают iPhone-подобный GUI.
Я лично рекомендую mirabyte's Touch Controls Suite 2 . Новая версия 2 намного лучше, чем первая версия (отличная производительность, низкое потребление памяти), и у них, вероятно, лучшее соотношение цены и качества. Я использовал их в некоторых клиентских проектах, и я очень ими доволен, в том числе из-за очень активного сообщества на их форумах поддержки, которые мне очень помогли!
Я пробовал Mirabyte и SlideUI. Я скачал и поиграл с ними обоими. Элементы управления SlideUI (1.6) действительно хороши, и я должен сказать, что впечатлен. Сейчас настраиваю у них студенческую лицензию. Я бы порекомендовал это всем, кто ищет более простой способ сделать красивое приложение, не создавая собственных дизайнов и элементов управления.
Найдите Sense SDK , отличный бесплатный API для разработки пользовательского интерфейса, удобного для пальцев. Мне нужно попробовать Touch Controls (хорошо, но не бесплатно), Fluid (устаревшее) и Silvermoon (плохая совместимость), а Sense SDK - лучший!