如何检查数组在.net中是否至少有两个计数,我得到的索引超出了以下行数组的界限
var resValues = sites.ToDictionary(x => x.Split(',')[2].Replace("test=", ""),
x => GetTestCodeename(x.Split(',')[2].Replace("test=", ""),
GetTestCode(x.Split(',')[2].Replace("test=", "").Split('_')[1])));
其中resValues的计数为1200,所以我想不到存储在某个变量中..我想在单个Linq代码中为所有这些1200值做
答案 0 :(得分:1)
你在这里和那里放了一些支票: - )
global $wpdb; $known_value = 1837;
$sql = $wpdb->prepare( "SELECT fix_against FROM fixtures WHERE fix_id = '$known_value'");
$result = $wpdb->get_results( $sql );echo $result;
注意使用关键字var resValues = (from x in sites
let sp1 = x.Split(',')
where sp1.Length > 2
let rep = sp1[2].Replace("test=", "")
let sp2 = rep.Split('_')
where sp2.Length > 1
select new
{
Key = rep,
Value = GetTestCodeename(rep, GetTestCode(sp2[1]))
}).ToDictionary(x => x.Key, x => x.Value);
在LINQ表达式中创建变量,然后创建一个包含let
和Key
的新临时匿名对象,然后创建从这个对象开始的Value
。
我正在跳过所有无法通过两个Dictionary<,>
完全拆分的元素。
答案 1 :(得分:1)
一些修改应该可以帮助您避免索引超出范围异常:
var result = sites.Select(s => s.Split(','))
.Where(s => s.Length > 2)
.Select(s => s[2].Replace("test=", ""))
.ToDictionary(s => s,
s => GetTestCodeename(s,
GetTestCode(s.IndexOf('_') != -1 ?
s.Split('_')[1] : string.Empty)));
或者如果您不希望在s.IndexOf('_') != -1
返回false的情况下传递空字符串,那么您可以采用这种方法:
var result = sites.Select(s => s.Split(','))
.Where(s => s.Length > 2)
.Select(s => s[2].Replace("test=", ""))
.Where(s => s.IndexOf('_') != -1)
.ToDictionary(s => s,
s => GetTestCodeename(s,
GetTestCode(s.Split('_')[1])));
答案 2 :(得分:1)
<meta-data
android:name="com.google.android.gms.vision.DEPENDENCIES"
android:value="face" />
答案 3 :(得分:1)
为了避免出现超出范围的异常和空值,您可以使用SelectMany
采用monadic方法。这里没有空值,你将有一个空序列,任何返回枚举的LINQ函数都可以工作,而不会抛出异常,只传播这个空序列。 Skip
和Take
也不会检查长度,并且在集合太短的情况下返回空的可枚举或子序列。
var resValues = sites
.Where(s => s != null)
.SelectMany(s => s
.Split(',')
.Skip(2)
.Take(1)
.Select(a => a.Replace("test=", ""))
.SelectMany(a => a
.Split('_')
.Skip(1)
.Take(1)
.Select(b => new
{
TestCodeName = GetTestCodeName(a),
TestCode = GetTestCode(a, b)
})))
.ToDictionary(p => p.TestCodeName, p => p.TestCode);
请注意,这会忽略在示例中无法取值Split(',')[2]
或Split('_')[1]
的所有网站。