Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 数组不允许负索引c_C#_C# 4.0 - Fatal编程技术网

C# 数组不允许负索引c

C# 数组不允许负索引c,c#,c#-4.0,C#,C# 4.0,我有以下程序,计算每个doctorial freq条目的文档频率 foreach (var termIndex in freq.Select(entry => GetTermIndex(entry.Key))) { _docFreq[i][termIndex]++; } 以及获取术语索引的过程 riva

我有以下程序,计算每个doctorial freq条目的文档频率

  foreach (var termIndex in freq.Select(entry => GetTermIndex(entry.Key)))
         {                                                              
            _docFreq[i][termIndex]++;
         }
以及获取术语索引的过程

rivate int GetTermIndex(string term)
    {
        int i;
        if (_wordsIndex.TryGetValue(term, out i))
            return i;
        else
            return 0;
    }
其中,所有术语都在另一本词典中编入索引

根据上述过程,如果entry.Key in freq不存在,那么GetTermIndex将返回0,这将累加_docFreq _docFreq[i][0],这就是问题所在。 那么,当条目.Key不存在时,我如何避免计数??我试着做一些类似的事情

rivate int GetTermIndex(string term)
    {
        int i;
        if (_wordsIndex.TryGetValue(term, out i))
            return i;
        else
            return -1;
    }
当然,错误索引超出了数组的范围,因为没有_docFreq[i][1]的索引

能帮忙吗??非常感谢

如果termIndex为-1,请不要计算它:

或者使用LINQ,其中:

如果termIndex为-1,则不要计算它:

或者使用LINQ,其中:


检查函数返回的值:

foreach (var termIndex in freq.Select(entry => GetTermIndex(entry.Key))) {
  if (termIndex != -1) {
    _docFreq[i][termIndex]++;
  }
}
或:


检查函数返回的值:

foreach (var termIndex in freq.Select(entry => GetTermIndex(entry.Key))) {
  if (termIndex != -1) {
    _docFreq[i][termIndex]++;
  }
}
或:

怎么样

  foreach (var termIndex in freq.Select(entry => GetTermIndex(entry.Key)).Where(index=>index>=0))
     {                                                              
        _docFreq[i][termIndex]++;
     }
怎么样

  foreach (var termIndex in freq.Select(entry => GetTermIndex(entry.Key)).Where(index=>index>=0))
     {                                                              
        _docFreq[i][termIndex]++;
     }

确保跳过这些无效值:

foreach (var termIndex in freq.Select(entry => GetTermIndex(entry.Key))).Where(x => x >= 0)
     {                                                              
        _docFreq[i][termIndex]++;
     }

确保跳过这些无效值:

foreach (var termIndex in freq.Select(entry => GetTermIndex(entry.Key))).Where(x => x >= 0)
     {                                                              
        _docFreq[i][termIndex]++;
     }

非常感谢马丁非常感谢马丁非常感谢Rane非常感谢Rane非常感谢Rane