我有一个IList<string>
,其值如下:
string[] tags = {"firstValue:1","secondValue:5", "thirdValue:10"}
有没有一种简便的方法可以编写Linq语句而无需遍历每个值?
这是我到目前为止所拥有的:
var secondValue = tags.FirstOrDefault(tag => tag.Split(':')[0] == "secondValue");
var answer = secondValue.Split(':')[1];
在此方法有效的同时,我想采用一种更简洁的方法,无需将字符串分割两次
答案 0 :(得分:2)
您自己就有答案了,您可以像这样将它们加入在一起:
var answer = tags.FirstOrDefault(tag => tag.Split(':')[0] == "secondValue").Split(':')[0];
根据您的情况,您可以跳过第一个拆分,例如:
var answer = tags.FirstOrDefault(tag => tag.StartsWith("secondValue:")).Split(':')[0];
对于null检查,只需执行以下操作:
var answer = tags.FirstOrDefault(t => t.StartsWith("secondValue:"))?.Split(':')[1] ?? "0";
答案 1 :(得分:2)
如果您想走词典路线(如果使用列表多次,则更可取),则无需拆分两次:
microsoft.windows.softwarelogo.appxlauncher.exe <packageFamilyName>!App