#c# #linq
#c# #linq
Вопрос:
У меня есть этот код:
List<Phrase> cardSetPhrases = App.DB.GetPhrasesForCardSet(cardSetId);
У Phrase
объекта есть int Index
свойство.
Есть ли какой-нибудь способ, используя LINQ, чтобы я мог заполнить это порядковым номером для каждой строки, возвращаемой с правой стороны?
Я действительно думал о чем-то подобном этому:
foreach (var x in App.cardSetWithWordCount.Select((r, i) => new { Row = r, Index = i }))
Но мне интересно, есть ли более краткий способ, которым я мог бы это сделать.
Комментарии:
1. Я знаю, что это вопрос LINQ, но я думаю, что вам лучше использовать
HashSet<T>
Ответ №1:
Почему вы не используете хэш-код для каждого элемента?
cardSetPhrases.ForEach(x => x.Index = x.GetHashCode());
Для последовательности, я думаю, вам нужно полагаться на отдельную переменную
int i = 0;
cardSetPhrases.ForEach(x => x.Index = i );
Комментарии:
1. Извините, я хотел получить порядковый номер, как в 1,2,3
2. @Alan2 Я не мог придумать что-то менее сложное.