0

IGrouping クエリから結果を取得し、それをリストに入れたいと考えています。

私は次のようにこれをやろうとしました:

エンティティ クラス

public class WordRank
{

    public string Word { get; set; }
    public string WordScore { get; set; }
}

方法

     public void DisplayArticles()
    {
        var articles = this.articleRepository.TextMinerFindBy(this.view.Client, this.view.Brand, this.view.Project, this.view.Term, this.view.Channel, this.view.Begin, this.view.End, this.view.OnlyCategorized, this.view.UniquePosts);
        string snippets = string.Empty;

        foreach (var article in articles)
        {
            snippets = snippets + " " + article.Snippet;
        }

        Regex wordCountPattern = new Regex(@"[.,;:!?""\s-]");
        string snippetCollection = wordCountPattern.Replace(snippets, " ");

        var words = snippetCollection.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

        var groups = words.GroupBy(w => w);


        foreach (var item in groups)
        {
            this.view.Words.Add(item);
        }
    }

ただし、項目を IList に割り当てることはできません。誰か私に光をくれませんか?

ありがとう

4

1 に答える 1

7

編集:さて、あなたが何をしようとしているのかがわかったので(コメントを参照):

foreach (var group in groups)
{
    this.view.Words.Add(new WordRank { Word = group.Key,
                                       WordScore = group.Count() });
}

this.view.Wordsまたは、 の全体をに置き換えてよろしい場合はList<WordRank>、下のビット全体を次のように置き換えます。

this.view.Words = words.GroupBy(w => w)
                       .Select(new WordRank { Word = group.Key,
                                              WordScore = group.Count() })
                       .ToList();
于 2013-07-03T20:42:41.363 に答える