LINQ 'join' ожидает равенства, но я хотел бы использовать 'contains'

Это небольшой побочный проект, над которым я работал, и хотел узнать, что я делаю неправильно. У меня есть «словарь» букв и их соответствующие оценки, а также список слов. Моя идея заключалась в том, чтобы найти буквы, которые были в каждом слове, и суммировать оценки.

// Create a letter score lookup
var letterScores = new List<LetterScore>
                       {
                           new LetterScore {Letter = "A", Score = 1},
                           // ...
                           new LetterScore {Letter = "Z", Score = 10}
                       };

// Open word file, separate comma-delimited string of words into a string list
var words = File.OpenText("c:\\dictionary.txt").ReadToEnd().Split(',').ToList();                           

// I was hoping to write an expression what would find all letters in the word (double-letters too) 
// and sum the score for each letter to get the word score.  This is where it falls apart.
var results = from w in words
          join l in letterScores on // expects an 'equals'
          // join l in letterScores on l.Any(w => w.Contains(
          select new
                     {
                         w,
                         l.Score
                     };

Мы будем благодарны за любую помощь. Спасибо.

13
задан Andy Evans 22 September 2011 в 20:20
поделиться