Я хочу изменить поле структуры, находящееся внутри массива, без необходимости устанавливать целую структуру. В приведенном ниже примере я хочу установить одно поле элемента 543 в массиве. Я не хочу копировать весь элемент (потому что копирование MassiveStruct повредило бы производительность).
class P
{
struct S
{
public int a;
public MassiveStruct b;
}
void f(ref S s)
{
s.a = 3;
}
public static void Main()
{
S[] s = new S[1000];
f(ref s[543]); // Error: An object reference is required for the non-static field, method, or property
}
}
Есть ли способ сделать это на С#? Или мне всегда приходится копировать всю структуру из массива, изменять копию, а затем возвращать измененную копию в массив.