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

C# 如何获得字符串的一部分

C# 如何获得字符串的一部分,c#,string,C#,String,我有一根绳子 例如 现在,我希望我的临时字符串具有该值 tempString = "DC=CopTest,DC=copiun2,DC=com" 我需要从字符串中删除所有出现的OU值对。这些总是出现在字符串的第一位。好吧,这取决于你希望它是什么原因。如果希望所有内容都在第一个逗号之后,可以使用: int comma = a.IndexOf(','); if (comma != -1) { string tempString = a.Substring(comma + 1); /

我有一根绳子 例如

现在,我希望我的临时字符串具有该值

 tempString = "DC=CopTest,DC=copiun2,DC=com"
我需要从字符串中删除所有出现的
OU
值对。这些总是出现在字符串的第一位。

好吧,这取决于你希望它是什么原因。如果希望所有内容都在第一个逗号之后,可以使用:

int comma = a.IndexOf(',');
if (comma != -1)
{
    string tempString = a.Substring(comma + 1);
    // Use tempString
}
else
{
    // Deal with there not being any commas
}
如果这不是您想要分割字符串的方式,请提供有关您需要执行的操作的更多信息

编辑:如果需要“第一个逗号后跟DC=”可以将第一行更改为:

int comma = a.IndexOf(",DC=");
再说一次,如果你需要其他东西,请更具体地说明你想做什么。

好吧,这取决于你希望它成为那样的理由。如果希望所有内容都在第一个逗号之后,可以使用:

int comma = a.IndexOf(',');
if (comma != -1)
{
    string tempString = a.Substring(comma + 1);
    // Use tempString
}
else
{
    // Deal with there not being any commas
}
如果这不是您想要分割字符串的方式,请提供有关您需要执行的操作的更多信息

编辑:如果需要“第一个逗号后跟DC=”可以将第一行更改为:

int comma = a.IndexOf(",DC=");

同样,如果您需要其他内容,请更具体地说明您正在尝试执行的操作。

您需要使用Substring函数来完成此操作,但如何使用它取决于您的标准。例如,您可以这样做:

tempString = a.Substring(12);

如果您可以让我们知道您是非常有用的标准

您将需要为此使用Substring函数,但如何使用它取决于您的标准。例如,您可以这样做:

tempString = a.Substring(12);

如果您可以让我们知道您的标准非常有用

假设
OU
总是在其余的值对之前,这将得到最后一个
OU
值后面的所有字符串:

string a =  "OU=QALevel1,DC=CopTest,DC=copiun2,DC=com";
string res = a.Substring(a.IndexOf(',', a.LastIndexOf("OU=")) + 1);

// res = "DC=CopTest,DC=copiun2,DC=com"

假设
OU
总是在其余的值对之前,这将得到最后一个
OU
值后面的所有字符串:

string a =  "OU=QALevel1,DC=CopTest,DC=copiun2,DC=com";
string res = a.Substring(a.IndexOf(',', a.LastIndexOf("OU=")) + 1);

// res = "DC=CopTest,DC=copiun2,DC=com"

您可以使用LINQ来帮助:

string foo = "OU=SupportSubLevel3,OU=SupportLevel1,DC=CopTest,DC=copiun2,DC=com";

string sub = string.Join(",", 
                         foo.Split(',')
                            .Where(x => x.StartsWith("DC")));
Console.WriteLine(sub);
  • 将字符串拆分为一个数组,使用逗号
  • 仅以DC开头的为例
  • 放回一个字符串,用逗号分隔

您可以使用LINQ来帮助:

string foo = "OU=SupportSubLevel3,OU=SupportLevel1,DC=CopTest,DC=copiun2,DC=com";

string sub = string.Join(",", 
                         foo.Split(',')
                            .Where(x => x.StartsWith("DC")));
Console.WriteLine(sub);
  • 将字符串拆分为一个数组,使用逗号
  • 仅以DC开头的为例
  • 放回一个字符串,用逗号分隔

我怀疑您实际上需要的是所有域组件。你甚至可能想把它们分开。此示例将支持任何DN语法,并从中提取DC:

string a = "OU=QALevel1,DC=CopTest,DC=copiun2,DC=com";

// Separate to parts
string[] parts = a.Split(',');

// Select the relevant parts
IEnumerable<string> dcs = parts.Where(part => part.StartsWith("DC="));

// Join them again
string result = string.Join(",", dcs);
string a=“OU=QALevel1,DC=CopTest,DC=copiun2,DC=com”;
//分开
string[]parts=a.Split(',');
//选择相关部件
IEnumerable dcs=parts.Where(part=>part.StartsWith(“DC=”);
//再次加入他们
字符串结果=string.Join(“,”,dcs);

请注意,您可以同时获得所有DC部分的枚举
DC
,以及请求的字符串
result
。但最重要的是,这段代码是有意义的——当您看到它时,您确切地知道它将做什么——返回一个包含原始字符串的所有
DC=*
部分的字符串,删除所有非DC部分。

我怀疑您实际上需要的是所有域组件。你甚至可能想把它们分开。此示例将支持任何DN语法,并从中提取DC:

string a = "OU=QALevel1,DC=CopTest,DC=copiun2,DC=com";

// Separate to parts
string[] parts = a.Split(',');

// Select the relevant parts
IEnumerable<string> dcs = parts.Where(part => part.StartsWith("DC="));

// Join them again
string result = string.Join(",", dcs);
string a=“OU=QALevel1,DC=CopTest,DC=copiun2,DC=com”;
//分开
string[]parts=a.Split(',');
//选择相关部件
IEnumerable dcs=parts.Where(part=>part.StartsWith(“DC=”);
//再次加入他们
字符串结果=string.Join(“,”,dcs);

请注意,您可以同时获得所有DC部分的枚举
DC
,以及请求的字符串
result
。但最重要的是,这段代码是有意义的——当您看到它时,您确切地知道它将做什么——返回一个包含原始字符串的所有
DC=*
部分的字符串,删除任何非DC部分。

您使用什么规则来确定您想要的字符串的哪一部分?您只想要以
DC
开头的所有值吗?您确定要将输出作为字符串吗?如果您想进一步解析它,则此任务和一步中的进一步解析是有意义的。也可以有其他OU。。这只是一个例子,它也可以是OU=SupportSubLevel3,OU=SupportLevel1,DC=CopTest,DC=copiun2,DC=com OU总是先来,然后DC来。。。我想从DC=开始,然后准确地解释您期望的可能输入和您想要的输出。我们无法从单个示例中猜测。您使用什么规则来确定所需字符串的哪一部分?是否只需要以
DC
开头的所有值?您确定要将输出作为字符串吗?如果您想进一步解析它,则此任务和一步中的进一步解析是有意义的。也可以有其他OU。。这只是一个例子,它也可以是OU=SupportSubLevel3,OU=SupportLevel1,DC=CopTest,DC=copiun2,DC=com OU总是先来,然后DC来。。。我想从DC=开始,然后准确地解释您期望的可能输入和您想要的输出。我们无法从单个示例中猜测。或者,正如@Jon Skeet将子字符串基于第一个逗号的索引所做的那样:)或者@Jon Skeet将子字符串基于第一个逗号的索引所做的那样:)也可能存在其他OU。。这只是一个例子,它也可以是OU=SupportSubLevel3,OU=SupportLevel1,DC=CopTest,DC=copiun2,DC=com@user175084:那么,是什么决定了要从何处开始提取字符串?也可能有其他OU。。这只是一个例子,它也可以是OU=SupportSubLevel3,OU=SupportLevel1,DC=CopTest,DC=copiun2,DC=com@user175084:那么,是什么决定了您要从何处开始提取字符串呢?
string.Split()
至少是这样工作的。
string.Split()
至少是这样工作的。