Switch на C#, нужна помощь

Midnight

Client
Регистрация
28.02.2016
Сообщения
236
Благодарностей
114
Баллы
43
Привет всем, для выбора языка перевода через апи яндекса использую следующий код
C#:
project.Variables["lang_api"].Value = "азербайджанский|az,малаялам|ml,албанский|sq,мальтийский|mt,амхарский|am,македонский|mk,английский|en,маори|mi,арабский|ar,маратхи|mr,армянский|hy,марийский|mhr,африкаанс|af,монгольский|mn,баскский|eu,немецкий|de,башкирский|ba,непальский|ne,белорусский|be,норвежский|no,бенгальский|bn,панджаби|pa,бирманский|my,папьяменто|pap,болгарский|bg,персидский|fa,боснийский|bs,польский|pl,валлийский|cy,португальский|pt,венгерский|hu,румынский|ro,вьетнамский|vi,русский|ru,гаитянский|ht,себуанский|ceb,галисийский|gl,сербский|sr,голландский|nl,сингальский|si,горномарийский|mrj,словацкий|sk,греческий|el,словенский|sl,грузинский|ka,суахили|sw,гуджарати|gu,сунданский|su,датский|da,таджикский|tg,иврит|he,тайский|th,идиш|yi,тагальский|tl,индонезийский|id,тамильский|ta,ирландский|ga,татарский|tt,итальянский|it,телугу|te,исландский|is,турецкий|tr,испанский|es,удмуртский|udm,казахский|kk,узбекский|uz,каннада|kn,украинский|uk,каталанский|ca,урду|ur,киргизский|ky,финский|fi,китайский|zh,французский|fr,корейский|ko,хинди|hi,коса|xh,хорватский|hr,кхмерский|km,чешский|cs,лаосский|lo,шведский|sv,латынь|la,шотландский|gd,латышский|lv,эстонский|et,литовский|lt,эсперанто|eo,люксембургский|lb,яванский|jv,малагасийский|mg,японский|ja,малайский|ms".Split(',').First(s=>s.Contains(project.Variables["lang"].Value)).Split('|')[1];
Все работает, но при выборе русского языка код возвращает не ru, а be, то есть белорусский. Видимо дело в "(s=>s.Contains(project.Variables["lang"].Value)" , но как сделать точное соотвествие я не смог понять, прошу помощи.
 

Serjio Leone

Client
Регистрация
20.09.2017
Сообщения
114
Благодарностей
84
Баллы
28
Возвращает be, потому что и в том и другом слове содержится (s.Contains ) одно и тоже слово белорусский|be, русский|ru, как вариант попробуй в любом слове заменить букву на английскую например у на y или с на с
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 758
Благодарностей
2 392
Баллы
113
Видимо дело в "(s=>s.Contains(project.Variables["lang"].Value)" , но как сделать точное соотвествие я не смог понять, прошу помощи.
Может тогда стоит использовать строгое равенство (s => s ==project.Variables["lang"].Value)?
 

Serjio Leone

Client
Регистрация
20.09.2017
Сообщения
114
Благодарностей
84
Баллы
28
Может тогда стоит использовать строгое равенство (s => s ==project.Variables["lang"].Value)?
Попробуй, даже не знаю, к сожалению в ламбда-выражениях не силен, но думаю что так тоже должно получиться :-)
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
C#:
....Split(',').First(s=>s.Split('|')[0].Equals("русский")).Split('|')[1];
 
  • Спасибо
Реакции: Midnight

Midnight

Client
Регистрация
28.02.2016
Сообщения
236
Благодарностей
114
Баллы
43

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)