C# 4.0 如何用逗号分隔部分字符串?

C# 4.0 如何用逗号分隔部分字符串?,c#-4.0,C# 4.0,我有一个字符串: string mystring="part1, part2, part3, part4, part5"; 如何返回前3个元素而不首先将它们拆分? 所以像这样: string newstring="part1, part2, part3"; 您可以使用以下方法获得前三个: 正则表达式r=新正则表达式(@“(\S+,\S+,\S+,\S+,\S+,\S+) 我确信有更好的方法来编写正则表达式,但我认为基本输入就可以了。尝试查找第三个逗号的索引,然后获取子字符串 范例 void

我有一个字符串:

string mystring="part1, part2, part3, part4, part5";
如何返回前3个元素而不首先将它们拆分? 所以像这样:

string newstring="part1, part2, part3";

您可以使用以下方法获得前三个:

正则表达式r=新正则表达式(@“(\S+,\S+,\S+,\S+,\S+,\S+)


我确信有更好的方法来编写正则表达式,但我认为基本输入就可以了。

尝试查找第三个逗号的索引,然后获取子字符串

范例

void Main()
{
    string mystring="part1, part2, part3, part4, part5";

    int thirdCommaIndex =  IndexOf(mystring, ',', 3);
    var substring = mystring.Substring(0,thirdCommaIndex-1);
    Console.WriteLine(substring);
}

int IndexOf(string s, char c, int n)
{
  int index = 0;
  int count = 0;
  foreach(char ch in s)
  {
     index++;
    if (ch == c)
     count++;

    if (count == n )
     break;
  }
  if (count == 0) index = -1; 
  return index;  
}

这将解析试图找到第三个逗号的字符串,并将其和后面的所有内容丢弃

        string mystring = "part1, part2, part3, part4, part5";
        UInt16 CommasFound = 0;
        UInt16 Location = 0;
        for (Location = 0; (CommasFound < 3) && 
                           (Location < mystring.Count()); Location++)
               if (mystring[Location].Equals(',')) 
                        CommasFound++;
        if (CommasFound == 3) 
        {
           string newstring = mystring.Substring(0, Location-1);  
        }
        else { // Handle the case where there isn't a third item 
             }
string mystring=“part1、part2、part3、part4、part5”;
UInt16 CommasFound=0;
UInt16位置=0;
对于(位置=0;(逗号小于3)和
(Location
此数据的结构如何?你知道数据中是否会有逗号之类的东西吗?引用?换行等?