C#如何删除每一行上的每个字符

时间:2016-10-24 03:21:50

标签: c# .net

所以我一直想弄清楚如何在每一行的某个点之后删除字符,例如我有一个列表如下:

dskfokes=dasfn3rewk
dsanfiwen=434efsde
damkw4343=o3rm3i
dmfkim303rk2=0439wefksd
32i32j9esfj=42393jdsf

如何在'='之后删除每行上的所有内容?

4 个答案:

答案 0 :(得分:4)

使用string.IndexOf()获取要删除的char的索引,然后使用string.Remove()进行删除。

string str = "dskfokes=dasfn3rewk";
str = str.Remove(str.IndexOf('='));

答案 1 :(得分:1)

一种方法是使用LINQ:

var strings = new string[] {
    "dskfokes=dasfn3rewk
,   "dsanfiwen=434efsde
,   "damkw4343=o3rm3i
,   "dmfkim303rk2=0439wefksd
,   "32i32j9esfj=42393jdsf
};
var res = strings.Select(s => s.Split('=')[0]).ToArray();

这会将=上的每个字符串拆分,并删除第一个'='字符后的所有字符串。

答案 2 :(得分:0)

我建议您使用字符串处理操作SubStringIndexOf的组合来实现此目的,请考虑以下示例:

List<string> inputLine = new List<string>(){ "dskfokes=dasfn3rewk",
                                          "dsanfiwen=434efsde",
                                          "damkw4343=o3rm3i",
                                          "dmfkim303rk2=0439wefksd",
                                          "32i32j9esfj=42393jdsf"};
List<string> outputLines = inputLine.Select(x => 
                           x.IndexOf('=') == -1 ? x :
                           x.Substring(0, x.IndexOf('='))).ToList();

注意:如果找不到指定的索引,IndexOf将返回-1,在这种情况下,substring方法会因-1而引发错误}将不是有效的索引。因此我们必须在继续之前检查是否存在带有字符串的索引。您也可以像这样尝试简单的foreach

List<string> outputLines=new List<string>();
int currentCharIndex=-1;
foreach (string line in inputLine)
{
    currentCharIndex = line.IndexOf('=');
    if(currentCharIndex ==-1)
        outputLines.Add(line);
    else
        outputLines.Add(line.Substring(0,currentCharIndex));
}

答案 3 :(得分:0)

您也可以使用String.Split()之类的

进行此操作
string[] allWords = new string[] {
"dskfokes=dasfn3rewk",
"dsanfiwen=434efsde",
"damkw4343=o3rm3i",
"dmfkim303rk2=0439wefksd",
"32i32j9esfj=42393jdsf"
};

foreach(string s in allWords)
{
    string[] urstring = s.Split('=');
    Console.WriteLine(urstring[0]);
}