使用 LINQ 将字符串拆分为多个字符串
Splitting string into multiple strings using LINQ
我正在尝试拆分这个字符串
string s = "sn DC0000002; mac 00:0c; uuid 564d6ae4-979";
我需要从上面的字符串“DC0000002”、“00:0c”、“”中获取这些值564d6ae4-979"
为此我尝试了以下查询但无法获得最后两个值我的意思是这两个值 ("00:0c" , " 564d6ae4-979")
下面是拆分查询
List<string> decryptedList = new List<string>();
decryptedList = decodePP.Split(';').Select(x => x.Split(' ')[1]).ToList();
orgSNo = decryptedList[0]; //Output - DC0000002
orgMacID = decryptedList[1];// output - mac // this is wrong need to get value
orgUUID = decryptedList[2]; //output - uuid // this is also wrong
任何人都可以帮助解决这个查询如何使用 LINQ 查询一次性从上述字符串中提取值吗?
第一次拆分后得到的 trim 个子字符串:
decodePP.Split(';').Select(x => x.Trim().Split(' ')[1]).ToList();
您得到的结果不正确,因为第一次拆分给您
[ "sn DC0000002", " mac 00:0c", " uuid 564d6ae4-979" ]
如您所见,除第一个项目外,其他项目都有前导空格。
替代解决方案 - 您可以使用 StringSplitOptions.RemoveEmptyEntries
参数来跳过空子字符串
str.Split(';')
.Select(x => x.Split(new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)[1])
.ToList()
为什么需要使用 Linq。字符串拆分似乎可以解决问题?
string[] keyValuePairs = s.Split(';');
foreach(string pair.Trim() in keyValuePairs)
{
string key = pair.Split(' ')[0].Trim();
string value = pair.Split(' ')[1].Trim();
}
这只是对代码的尝试 - 它可能无法编译,但你明白了吗?
您可以在 linq 语句中使用 TrimStart() 函数,例如:
decryptedList = decodePP.Split(';').Select(x => x.TrimStart().Split(' ')[1]).ToList();
我正在尝试拆分这个字符串
string s = "sn DC0000002; mac 00:0c; uuid 564d6ae4-979";
我需要从上面的字符串“DC0000002”、“00:0c”、“”中获取这些值564d6ae4-979"
为此我尝试了以下查询但无法获得最后两个值我的意思是这两个值 ("00:0c" , " 564d6ae4-979")
下面是拆分查询
List<string> decryptedList = new List<string>();
decryptedList = decodePP.Split(';').Select(x => x.Split(' ')[1]).ToList();
orgSNo = decryptedList[0]; //Output - DC0000002
orgMacID = decryptedList[1];// output - mac // this is wrong need to get value
orgUUID = decryptedList[2]; //output - uuid // this is also wrong
任何人都可以帮助解决这个查询如何使用 LINQ 查询一次性从上述字符串中提取值吗?
第一次拆分后得到的 trim 个子字符串:
decodePP.Split(';').Select(x => x.Trim().Split(' ')[1]).ToList();
您得到的结果不正确,因为第一次拆分给您
[ "sn DC0000002", " mac 00:0c", " uuid 564d6ae4-979" ]
如您所见,除第一个项目外,其他项目都有前导空格。
替代解决方案 - 您可以使用 StringSplitOptions.RemoveEmptyEntries
参数来跳过空子字符串
str.Split(';')
.Select(x => x.Split(new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)[1])
.ToList()
为什么需要使用 Linq。字符串拆分似乎可以解决问题?
string[] keyValuePairs = s.Split(';');
foreach(string pair.Trim() in keyValuePairs)
{
string key = pair.Split(' ')[0].Trim();
string value = pair.Split(' ')[1].Trim();
}
这只是对代码的尝试 - 它可能无法编译,但你明白了吗?
您可以在 linq 语句中使用 TrimStart() 函数,例如:
decryptedList = decodePP.Split(';').Select(x => x.TrimStart().Split(' ')[1]).ToList();