[英]C# Get accessor is inaccessible
我有以下类定义:
public static string SplitString(string someText)
{
var queryArray = Regex.Split(someText, "\\s+(?=\\w+)");
foreach (var i in Enumerable.Range(0, queryArray.Count - 1)) {
// Some code
}
}
问题是queryArray.Count给我以下错误:
在这种情况下,不能使用属性'System.Array.Count',因为无法访问get访问器。
我在这里想念什么?
您可以尝试改用Length
属性:
public static string SplitString(string someText)
{
var queryArray = Regex.Split(someText, "\\s+(?=\\w+)");
foreach (var i in Enumerable.Range(0, queryArray.Length - 1)) {
// Some code
}
}
同样,如果这样编写,您的代码可能更易读:
public static string SplitString(string someText)
{
var queryArray = Regex.Split(someText, "\\s+(?=\\w+)");
for (var i = 0; i < queryArray.Length; i++) {
// Some code
}
}
或像这样:
public static string SplitString(string someText)
{
var queryArray = Regex.Split(someText, "\\s+(?=\\w+)");
foreach (var item in queryArray) {
// Some code
}
}
Regex.Split
返回一个数组,该数组未定义Count
属性。 使用Length
代替:
public static string SplitString(string someText)
{
var queryArray = Regex.Split(someText, "\\s+(?=\\w+)");
foreach (var i in Enumerable.Range(0, queryArray.Length - 1)) {
// Some code
}
}
您可以尝试使用Length property
当Select扩展为您提供索引时,为什么还要担心索引:
var data = Regex.Split("someText other", "\\s+(?=\\w+)")
.Select((itm, indexer) => string.Format("{0} is index {1}", itm, indexer));
/* Data has 2 strings in the list:
someText is index 0
other is index 1
*/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.