C# 字符串到使用c中的子字符串的字符串列表

C# 字符串到使用c中的子字符串的字符串列表,c#,list,substring,C#,List,Substring,我有一根装有子弹的绳子 *苹果*芒果*香蕉*沙波塔 我想创建一个字符串{苹果、芒果、香蕉、沙波塔}的列表。 如果可用,建议使用字符串的任何其他方法。拆分: 如果要删除空条目,请执行以下操作: string test = "*apple*mango*banana*sapota"; List<string> l = test.Split('*').Where(x=>x!=String.Empty).ToList(); 尝试使用string.Split和StringSplitOp

我有一根装有子弹的绳子

*苹果*芒果*香蕉*沙波塔

我想创建一个字符串{苹果、芒果、香蕉、沙波塔}的列表。 如果可用,建议使用字符串的任何其他方法。拆分:

如果要删除空条目,请执行以下操作:

string test =  "*apple*mango*banana*sapota";
List<string> l = test.Split('*').Where(x=>x!=String.Empty).ToList();
尝试使用string.Split和StringSplitOptions.RemoveEmptyEntries选项

String.Split是您要查找的:

用这个

 string s = "*apple*mango*banana*sapota.";

 string[] lst = s.Split('*');

删除空条目实际上可以这样做:test.Splitnew[]{'*},StringSplitOptions.removeMptyEntries您是对的,但已经有一个这样的答案了。我不想复制它。顺便问一下,你认为他们在性能方面是否相同?性能方面很难评论。但是,几乎可以肯定的是,在构建初始数组(即string.Split)时最好处理空条目,而不是再次迭代整个数组以删除空条目。使用LINQ性能会更差。在后台,他们将为循环做同样的事情,但是LINQ在运行时使用延迟执行时会有一个非常小的开销。
string test =  "*apple*mango*banana*sapota";
List<string> l = test.Split('*').Where(x=>x!=String.Empty).ToList();
var list = yourString.Split(new[] {'*'}, 
                    StringSplitOptions.RemoveEmptyEntries).ToList();
 string s = "*apple*mango*banana*sapota.";

 string[] lst = s.Split('*');
    String str="*apple*mango*banana*sapota";
    List<String> lst = new List<string>();
    String [] strArray= str.Split('*');

    foreach (String str1 in strArray)
    {
       if(str1!="")
        lst.Add(str1);
    }
apple
mango
banana
sapota
    string names = "*apple*mango*banana*sapota";
    List<string> test = new List<string>();
    string[] namesplit = names.Split('*'); 
    foreach(string namearry in namesplit)
    {
        test.Add(namearry);
        test.ToArray();
    }