C# 如何在固定长度后拆分字符串数组
我有对象类型的listboxC# 如何在固定长度后拆分字符串数组,c#,arrays,string,list,split,C#,Arrays,String,List,Split,我有对象类型的listboxuserOptions,结果如下 { Number = 1, FName = "ABC", LName = "D" } { Number = 2, FName = "EFG", LName = "E" } { Number = 3, FName = "HIJ", LName = "F" } { Number = 4, FName = "ABC", LName = "G" } 并且只需要在字符串数组中存储FName信息,如 string[] d
userOptions
,结果如下
{ Number = 1, FName = "ABC", LName = "D" }
{ Number = 2, FName = "EFG", LName = "E" }
{ Number = 3, FName = "HIJ", LName = "F" }
{ Number = 4, FName = "ABC", LName = "G" }
并且只需要在字符串数组中存储FName
信息,如
string[] data = new string[3];
string data[0]=ABC
string data[1]=EFG
string data[2]=HIJ
还要从FName中删除重复数据
我尝试使用以下代码,但这很耗时,因为我无法将字符串数组数据从FName=“ABC”
拆分为'ABC'
for (int i = 0; i < userOptions.Count; i++)
{
foreach (object items in userOptions)
{
devicedata = userOptions[i].ToString();
string[] Arr = devicedata .Split(',');
devdata[i] = Arr[1];
}
}
如果你真的得到了JSON(这很奇怪),你也可以使用正则表达式来获得一个相当简单的解决方案 Ungreedy:
FName = "(.*)"
例如:
所有代码都会消耗时间,只要数字低于1000,就不可能真正相关。似乎您需要
var result=userOptions.Select(s=>s.FName).Distinct().ToArray()代码>@WiktorStribiżew:这应该作为一个答案给出。这可能是解决这个问题的最简洁的方法。你有一个列表框,可以提供JSon片段吗?什么是设备类型
?我投票决定结束这个问题,如果你需要实际帮助,创建一个。我也投票决定结束这个问题,因为这个问题看起来很不清楚,特别是看代码示例。您有一个嵌套的for循环,它从userOptions
中提取每个项
,但在该for循环中,您根本没有使用项
。您基本上是在整个userOptions
集合上无理由地循环了N*(N-1)次。
FName = "(.*)"