/ / перевірка декількох хеш-файлів у словнику, щоб отримати ключове значення - c #, словник, хешсет

перевірка кількох хешетів у словнику, щоб отримати ключове значення - c #, словник, гашет

Тож я намагаюся працювати, хоча гра, що скремблірує, я намагаюся використовувати словник зі списками хетштету int. Я кладу букви в групи на основі їх значення (key = int = оцінка), як показано нижче.

HashSet<char> pointsONEList = new HashSet<char>(new char[] { "e", "a", "i", "o", "n", "r", "t", "l", "s", "u" });
HashSet<char> pointsTwoList = new HashSet<char>(new char[] { "d", "g" });
HashSet<char> pointsThreeList = new HashSet<char>(new char[] { "b", "c", "m", "p" });
HashSet<char> pointsFourList = new HashSet<char>(new char[] { "f", "h", "v", "w", "y" });
HashSet<char> pointsFiveList = new HashSet<char>(new char[] { "k" });
HashSet<char> pointsEightList = new HashSet<char>(new char[] { "j", "x" });
HashSet<char> pointsTenList = new HashSet<char>(new char[] { "q", "z" });

Dictionary<int, HashSet<char>> letterPoints = new Dictionary<int, HashSet<char>>();

letterPoints.Add(1, pointsONEList);
letterPoints.Add(2, pointsTwoList);
letterPoints.Add(3, pointsThreeList);
letterPoints.Add(4, pointsFourList);
letterPoints.Add(5, pointsFiveList);
letterPoints.Add(8, pointsEightList);
letterPoints.Add(10, pointsTenList);

Далі мені потрібно знайти спосіб відокремити слово та знайти кожного символу у слові, знайти його у списку, а потім додати до іншого словника за допомогою даного слова та суми всіх його цифр.

це те, що я до сих пір

int N = int.Parse(Console.ReadLine());
for (int i = 0; i < N; i++)
{
string W = Console.ReadLine();

int wordValue=0;
char[] splitWord = W.ToCharArray();
for (int j = 0; j < splitWord.Length; j++)
{
for (int h = 0; h < letterPoints.Count; h++)
{
}
}
}

Я не можу змусити його шукати весь словник

Відповіді:

2 для відповіді № 1

З використанням LINQ, ви можете зробити це в один рядок:

var points = splitWord.Sum(c => letterPoints.First(kvp => kvp.Value.Contains(c)).Key)

Цей код робить: для кожного символу в splitWord знайди HashSet отримайте відповідну клавішу з літерних точок, що містить символ, і підсумуйте всі клавіші та отримайте загальну точку.