2014-11-01 33 views
2

标题就像是文艺青年最爱的版本,这里是我的意思是:分类串

我目前做只是一个字符串(以文本文件),而我分裂这个字符串转换成单词。我想创建一个方法,允许我根据字符串/文件标记单词。例如:

string nameOfString = "John likes pancakes"; 

Categorize(string nameOfString, class nameOfCategory)

这种方法会使约翰,喜欢和煎饼到一个类别(如笨,bestTexts)我传递给nameOfCategory。 我想数字,然后到所有的分类的话,所以可能应该使用某种数组顶部做到这一点。有人可以帮我弄这个吗?最大的问题是我真的不知道如何传递类别(作为一个单独的类或者只是一个字符串,可能是string []?),并且仍然可以对它进行计数。

+0

你知道你有多少种类有哪些? – MVCDS 2014-11-01 12:27:39

+0

@MVCDS类别的数量可能会是两(2)个。 – 2014-11-01 12:28:42

+0

@YuvalItzchakov我正在阅读有关http://msdn.microsoft.com/en-us/library/system.componentmodel.categoryattribute%28v=vs.110%29.aspx但IDK的,如果这将帮助我以任何方式。 – 2014-11-01 12:31:29

回答

1
static void Main(string[] args) 
{ 
    var inputList = new List<string> 
    { 
     "John likes pancakes", 
     "John hates watching TV", 
     "I like my TV", 
    }; 

    var dic = new Dictionary<string, int>(); 
    inputList.ForEach(str => AddToDictionary(dic, str)); 

    foreach (var entry in dic) 
     Console.WriteLine(entry.Key + ": " + entry.Value); 
} 

static void AddToDictionary(Dictionary<string, int> dictionary, string input) 
{ 
    input.Split(' ').ToList().ForEach(n => 
    { 
     if (dictionary.ContainsKey(n)) 
      dictionary[n]++; 
     else 
      dictionary.Add(n, 1); 
    }); 
} 
+0

我将这个标记为一个answear,我是c#的新手,并不知道Dictoriany thingy :)谢谢,对于文档!还有一个问题,这看起来像一个反我(没有建立它,但不是在PC上) - 是否有任何方法允许我将它们添加到不同的类别,或者我应该试试用“if x then y” ? – 2014-11-01 12:45:36

+0

你可以制作一个'Dictionary >'。如果字典“ContainsKey(n)'现在'n'是你类别的名字,你什么也不做。否则,你会在字典中添加一个新类别。然后在main函数中,在'foreach'循环中,可以用'entry.Count'替换'entry.Value'来显示每个类别中的字符串数量。这是因为'entry'现在是'List '而不是'string'。无论如何,这是一些变化。你应该可以根据自己的需求调整它。如果需要请求帮助:) – mihai 2014-11-01 12:53:54

+0

嗯,是“n”的类别还是“单词”(比如电视,约翰)?在我的理解中,这是一个词,我错了吗? – 2014-11-01 13:39:13