.split с деталями бритвы C # asp.net ядро - PullRequest
0 голосов
/ 21 мая 2019

Хотите взять строку NPCSkills и разбить ее на список

NPCSkills - это реквизит, включающий в себя строку типа "guns = 4, armor = 2" Я хочу, чтобы он разделился на список, чтобы я мог отобразить его

пункт 1 пункт 2

Я делаю .split, но не уверен, что теперь делать.

 string[] Words = (Model.NPCSkills).Split(',');
 foreach (var item in Words)
 {
     <li>
     @item.Words
     </li>
 }

string не содержит определения для «Слова», и метод расширения «Слова», принимающий первый аргумент типа string, не найден (вы пропустили директиву using или ссылку на сборку?) + @ item.Words

1 Ответ

1 голос
/ 21 мая 2019

Вы можете использовать следующий код для преобразования NPCSkills (comma-separated string) в строго типизированный Dictionary:

var Words = (Model.NPCSkills)
    .Split(',')
    .Select(s => s.Split("="))
    .ToDictionary(arr => arr[0], arr =>arr[1] );

Или, если вы хотите удалить пробел вокруг пары ключ / значение:

var Words = (Model.NPCSkills)
    .Split(',')
    .Select(s => s.Split("=").Select(e => e.Trim()).ToArray())
    .ToDictionary(arr => arr[0], arr =>arr[1]);

Теперь вы можете сделать это более безопасным способом:

@foreach(var item in Words)
{
    <li>
        <span class="badge">@item.Key</span>
        <span class="text">@item.Value</span>
    </li>
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...