将Variable的变量存储在另一个变量中

时间:2017-06-10 18:51:55

标签: c#

我正在编写一些代码,需要我解析一个特殊字符分隔的字符串,并将其分配给一组变量。我现在正在使用以下逻辑。

        string Variable1, Variable2, Variable3, Variable4, Variable5, Variable6;
        string TestString = "One|Two|Three|Four|Five|Six";
        string[] Arr = TestString.Split('|');

        Variable1 = Arr[0];
        Variable2 = Arr[1];
        Variable3 = Arr[2];
        Variable4 = Arr[3];
        Variable5 = Arr[4];
        Variable6 = Arr[5];

这很好,但我想知道我是否可以拥有某种集合,其中,我可以指定将保存子字符串的变量的顺序,然后分配它,而不是通过'Variable1 = Arr [ 0]'有点步骤。

这个问题背后的想法或推理是,有些情况下变量列表可能在50-60s左右(变量并不总是命名为var1,它们具有有意义的名称)。在这种情况下,错误的可能性更大,其中,如果我有一个集合,说一个队列,我可以分配订单,那么避免错误会更容易。

更新:基本上,我希望将变量的引用存储在另一个变量中。

由于 ANU

2 个答案:

答案 0 :(得分:0)

看看在C#中使用指针。我不推荐它,我相信C#强迫你把它放在一个不安全的块中。但是,有了指针,可以将变量的引用存储到另一个变量中。

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/unsafe-code-pointers/pointer-types

答案 1 :(得分:0)

目前还不清楚你想要达到什么目标。如果您仍想使用单个变量或字段或属性,则可以通过执行此操作稍微改进一下。关键在于,现在是分配的顺序决定了将哪个值分配给哪个变量。不再需要使用索引。

string _testString = "One|Two|Three|Four|Five|Six";
string[] _strings;
int _index = 0;

string GetNextValue()
{
    return _strings[_index++];
}

void Main()
{
    _strings = _testString.Split('|');
    var First = GetNextValue();
    var Second = GetNextValue();
    var Third = GetNextValue();
    var Fourth = GetNextValue();
    var Fifth = GetNextValue();
    var Sixth = GetNextValue();
}