Как я могу добавить свойство have списка, заполненного уникальным номером, при заполнении списка?

#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 Я не мог придумать что-то менее сложное.