Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.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# 将文本拆分为4个数组_C#_.net - Fatal编程技术网

C# 将文本拆分为4个数组

C# 将文本拆分为4个数组,c#,.net,C#,.net,我想用字符分割文本,这样我就可以从中创建一个对象 string s = "Domain_FieldName"; //string s = "Domain_Schema_TableName_FieldName"; //string s = "Domain_Schema_FieldName"; var x = s.Split(new[] {'_'}, StringSplitOptions.None); var xx = new Response() { Value = "test",

我想用字符分割文本,这样我就可以从中创建一个对象

string s = "Domain_FieldName";
//string s = "Domain_Schema_TableName_FieldName";
//string s = "Domain_Schema_FieldName";

 var x = s.Split(new[] {'_'}, StringSplitOptions.None);

var xx = new Response()
{
  Value = "test",
  DataType = "string",
  Domain = 
  Schema = 
  TableName =
  FieldName = 
};
因此,问题是要拆分的字符串的长度可能不同

但是我需要拆分字符串,以便它可以映射到响应对象字段

我需要一种通用的方法来填充响应对象

例如,如果只指定了“Domain_FieldName”,则需要知道在响应中将Domain传递给Domain,在响应中将FieldName传递给FieldName,Schema和TableName应该得到一个空字符串,使用C#
Split
函数

string s = "Domain_Schema_TableName_FieldName";
string[] substring= s.Split('_');

上述代码将使用分隔符将字符串
域\u架构\u表名\u字段名
拆分为不同的部分,并将子字符串保存在名为substring的字符串数组中

在设置变量之前,请尝试检查
拆分
数组的长度。(如果太短,则设置默认值)

})

(另外:
s.Split(“”)
s.Split(“”)
也可以使用)

编辑: 我没有看到,您只想填写最后4个字段。更改代码

第二次编辑:
我也没有看到字符串的顺序可能不同(例如示例1和示例3)。在这种情况下,除非您可以指定如何确定哪个字符串需要进入哪个字段,否则我无法帮助您。

您可以执行以下操作:

        var x = s.Split(new[] { '_' }, StringSplitOptions.None);

        var xx = new Response
        {
            Value = "test",
            DataType = "string",
            Domain = x.Length > 0 ? x[0] : null,
            Schema = x.Length > 1 ? x[1] : null,
            TableName = x.Length > 2 ? x[2] : null,
            FieldName = x.Length > 3 ? x[3] : null
        };
试试这个

        string s = "Domain_FieldName";
        var x = s.Split(new[] { '_' }, StringSplitOptions.None);
        var xx = new Response
        {
           Value = "test",
           DataType = "string",
           Domain =x[0],
           Schema ="",
           TableName ="",
           FieldName = x[1]
        };

从您的示例来看,域总是第一位,字段名总是最后一位:

string s = "Domain_FieldName";
//string s = "Domain_Schema_TableName_FieldName";
//string s = "Domain_Schema_FieldName";

var x = s.Split('_');

var xx = new Response()
{
  Value = "test",
  DataType = "string",
  Domain = x[0]
  Schema = x.Length > 2 ? x[1] : "";
  TableName = x.Length > 3 ? x[2] : "";
  FieldName = x.Length > 1 ? x.Last() : "";
};

根本不清楚你在问什么或者你期望得到什么答案。对于您遇到的任何特定问题,请包括一个。请同时阅读。确保你的问题是具体的,不要过于宽泛。你的问题到底是什么?很明显,您正在拆分
s
并将其分配给
x
——但是您在哪里使用
x
?您想将
x
的哪些部分放入
xx
?很抱歉,无法看到您正在尝试执行的操作。如果您没有预定义的数据系列,则无法实现所需的操作。您可能需要这样的内容:域\字段名。这样,您将确保第四个元素始终是字段名,第一个元素始终是域,依此类推。请重新格式化您的代码示例。这不仅给潜在读者带来不便,还可能导致他们离开。格式化代码很重要,发布格式不好的代码会发出一个信号,表明这篇文章不值得。你的甚至不会编译。
string s = "Domain_FieldName";
//string s = "Domain_Schema_TableName_FieldName";
//string s = "Domain_Schema_FieldName";

var x = s.Split('_');

var xx = new Response()
{
  Value = "test",
  DataType = "string",
  Domain = x[0]
  Schema = x.Length > 2 ? x[1] : "";
  TableName = x.Length > 3 ? x[2] : "";
  FieldName = x.Length > 1 ? x.Last() : "";
};