Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.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# - Fatal编程技术网

C# 在空格后删除字符串的其余部分

C# 在空格后删除字符串的其余部分,c#,C#,我得到的字符串如下: foreach (DataRow dt in dt_power_conv.Rows) { _powerConv.leit_conv.Add(dt["leit_"].ToString(); } 它增加了“ABB第一次”。我需要找“ABB”,其余的都应该去掉。我尝试了以下方法,但没有任何改变: foreach (DataRow dt in dt_power_conv.Rows) { _powerConv.leit_conv.Add(dt["leit_"].To

我得到的字符串如下:

foreach (DataRow dt in dt_power_conv.Rows) {
    _powerConv.leit_conv.Add(dt["leit_"].ToString();
}

它增加了“ABB第一次”。我需要找“ABB”,其余的都应该去掉。我尝试了以下方法,但没有任何改变:

foreach (DataRow dt in dt_power_conv.Rows) {
    _powerConv.leit_conv.Add(dt["leit_"].ToString().Substring(0,(dt["leit_"].ToString()).LastIndexOf(" ") + 1));
}

使用
String.IndexOf
Remove
的单向键:

foreach (DataRow row in dt_power_conv.Rows) {
    string leit = row.Field<string>("leit_");
    int spaceIndex = leit.IndexOf(' ');
    leit = spaceIndex == -1 ? leit : leit.Remove(spaceIndex);
    _powerConv.leit_conv.Add(leit);
}

请注意,
String.Split
不带参数也会按制表符或新行字符进行拆分。

据我所知,您想从第一个空格之前的字符串中获取所有内容吗?你的问题不是很清楚。但如果是这样,我建议:

string str = "ABB for the first time";
string str2 = str.Split(' ').First();
可能不是最有效的,但易于阅读。

尝试使用
Remove()
IndexOf()


编辑为不重复IndexOf()函数。

以下是您需要的示例:

  using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            string text = "Hellou1 Hellou2";
            int index = text.LastIndexOf(' ');
            text = text.Substring(0, index);
            Console.WriteLine(text);

        }
    }
}

我不知道你为什么选择使用
LastIndexOf
,因为它告诉你最后一个索引。您只需稍作更改即可使代码正常工作。使用该方法。它:

报告此实例中第一次出现的指定字符串的从零开始的索引

如果不想在字符串中包含空格,请删除
+1

_powerConv.leit_conv.Add(
              dt["leit_"].ToString().Substring(0,(dt["leit_"].ToString()).IndexOf(" ")));

您需要获得前3个字符,第一个单词直到空格或任何其他特定条件?您可以提供leit_uuz列的示例数据吗?@EzequielLópez是的,第一个字符之前的所有内容space@EzequielLópez“ABB第一次”但它没有改变任何东西:“这不应该是真的。你应该得到ABB的第一个,虽然我没有投反对票,但我可以想象为什么
LastIndexOf
与OP使用的方法相同。所以这个解决方案只会导致OP发布的问题
foreach (DataRow dt in dt_power_conv.Rows) {

    string valueToAdd = dt["leit_"].ToString();

    int firstSpacePosition = valueToAdd.IndexOf(" ");

    if (firstSpacePosition >= 0)
        valueToAdd = valueToAdd.Remove(firstSpacePosition);

    _powerConv.leit_conv.Add(valueToAdd);
}
  using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            string text = "Hellou1 Hellou2";
            int index = text.LastIndexOf(' ');
            text = text.Substring(0, index);
            Console.WriteLine(text);

        }
    }
}
_powerConv.leit_conv.Add(
              dt["leit_"].ToString().Substring(0,(dt["leit_"].ToString()).IndexOf(" ")));