Non*_*biz 2 c# loops compare operators method-group
为什么(i <UniqueWords.Count)表达式在for循环中有效,但返回"CS0019运算符'<'不能应用于'int'和'方法组'类型的操作数"错误放在我的if中?它们都是先前声明的字符串数组.
for (int i = 0;i<UniqueWords.Count;i++){
Occurrences[i] = Words.Where(x => x.Equals(UniqueWords[i])).Count();
Keywords[i] = UniqueWords[i];
if (i<UniqueURLs.Count) {rURLs[i] = UniqueURLs[i];}
}
Run Code Online (Sandbox Code Playgroud)
编辑添加声明:
List<string> Words = new List<string>();
List<string> URLs = new List<string>();
Run Code Online (Sandbox Code Playgroud)
//元素添加如此....
Words.Add (referringWords); //these are strings
URLs.Add (referringURL);
UniqueWords = Words.Distinct().ToList();
UniqueURLs = URLs.Distinct().ToList();
Run Code Online (Sandbox Code Playgroud)
解决了.谢谢,方法需要括号.Count()我仍然不完全理解为什么它们并不总是必要的.
Jon Skeet,谢谢,我想我不明白究竟是什么声明呢?您想要分配实际值吗?它们是从外部源引出的,但却是字符串.
我知道了!谢谢.(至少是().)
你绝对相信它们都是字符串数组吗?
你确定一个不是字符串数组,另一个是IEnumerable<string>?这肯定会解释它.(有问题的方法组将是Enumerable.Count()扩展方法.)如果是这种情况,那么您将无法在块中使用索引器.
如果不是这样,请删除任何无关的代码但包括声明,以便我们有一个简短但完整的程序来测试.
事实上,鉴于您的编辑,它们不能被声明为字符串数组 - 因为您正在List<string>为它们分配值.我怀疑你会发现它UniqueWords被声明为List<string>或IList<string>,但UniqueURLs被声明为IEnumerable<string>.如果您正在使用,这可能是隐含的var.将鼠标悬停在变量名称上以找出类型 - 如果var更多的是诅咒而不是祝福,请返回显式键入变量.
| 归档时间: |
|
| 查看次数: |
2195 次 |
| 最近记录: |