我正在编写一些代码,需要我解析一个特殊字符分隔的字符串,并将其分配给一组变量。我现在正在使用以下逻辑。
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
答案 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();
}