C# 如何在固定长度后拆分字符串数组

C# 如何在固定长度后拆分字符串数组,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

我有对象类型的listbox
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 = "(.*)"