Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#如何删除每行内容后的每个字符_C#_.net - Fatal编程技术网

C#如何删除每行内容后的每个字符

C#如何删除每行内容后的每个字符,c#,.net,C#,.net,因此,我一直在试图找出如何删除每行某个点后的字符,例如,我有一个如下列表: dskfokes=dasfn3rewk dsanfiwen=434efsde damkw4343=o3rm3i dmfkim303rk2=0439wefksd 32i32j9esfj=42393jdsf 如何删除'='之后每行上的所有内容?使用string.IndexOf()获取要删除的字符的索引,然后使用string.remove()执行删除操作 string str = "dskfokes=dasfn3rewk";

因此,我一直在试图找出如何删除每行某个点后的字符,例如,我有一个如下列表:

dskfokes=dasfn3rewk
dsanfiwen=434efsde
damkw4343=o3rm3i
dmfkim303rk2=0439wefksd
32i32j9esfj=42393jdsf
如何删除
'='
之后每行上的所有内容?

使用string.IndexOf()获取要删除的字符的索引,然后使用string.remove()执行删除操作

string str = "dskfokes=dasfn3rewk";
str = str.Remove(str.IndexOf('='));
使用string.IndexOf()获取要删除的字符的索引,然后使用string.remove()执行删除操作

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

一种方法是使用LINQ:

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

这将拆分
=
上的每个字符串,并删除第一个
'='
字符后面的所有内容(如果有)。

一种方法是使用LINQ:

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

在“代码> >代码/>代码中拆分每个字符串,并在第一个代码< > '/c>字符>之后删除所有内容。

< p>我建议您使用字符串处理操作的组合<代码>子字符串< /代码>和<代码>索引> <代码>来实现这一点,请考虑以下示例:

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();

我建议您使用字符串处理操作“代码>子字符串< /代码>和<代码>索引> <代码>来实现这一点,请考虑以下示例:

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();

您也可以像这样使用
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]);
}

您也可以像这样使用
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]);
}

使用regexhow如何使用regexUsing
Split()
当您只需要第一个
=
符号之前的部分时,使用regexUsing是过分的。@SamuelNeff对于字符串中只有几个等号的情况来说,这是一个小的过度。另一方面,当
=
不存在时,它允许您跳过
-1
检查。如果存在多个等号,这不仅仅是过火。使用
IndexOf
搜索将在找到第一个后停止,而使用
Split
搜索将继续。另外,
Split
将分配一个字符串数组,而
IndexOf
with
Substring
将只分配另一个字符串。当然,我承认过度杀戮的程度很小,在任何现实情况下都不会成为瓶颈,我个人只是想避免不必要的过度杀戮。您关于
Split
的看法是正确的,但无需进行索引检查。这实际上是个人喜好的问题。当您只需要第一个
=
符号之前的部分时,使用
Split()
是过分的。@SamuelNeff对于字符串中只有几个等号的情况来说,这是一个小的过度。另一方面,当
=
不存在时,它允许您跳过
-1
检查。如果存在多个等号,这不仅仅是过火。使用
IndexOf
搜索将在找到第一个后停止,而使用
Split
搜索将继续。另外,
Split
将分配一个字符串数组,而
IndexOf
with
Substring
将只分配另一个字符串。当然,我承认过度杀戮的程度很小,在任何现实情况下都不会成为瓶颈,我个人只是想避免不必要的过度杀戮。您关于
Split
的看法是正确的,但无需进行索引检查。这实际上是个人偏好的问题。+1,但我要补充的是,在将结果传递给
Remove()
之前,最好检查是否确实找到了索引。+1,但我要补充的是,在将结果传递给
Remove()
之前,最好检查是否确实找到了索引。duplicate
IndexOf
调用。讨厌。重复
IndexOf
调用。讨厌。