如何编写分析和检查列表值的linq语句

时间:2019-03-26 21:48:19

标签: c# linq

我有一个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];

在此方法有效的同时,我想采用一种更简洁的方法,无需将字符串分割两次

2 个答案:

答案 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";

Live Demo

答案 1 :(得分:2)

如果您想走词典路线(如果使用列表多次,则更可取),则无需拆分两次:

microsoft.windows.softwarelogo.appxlauncher.exe <packageFamilyName>!App