Можно ли использовать отражение для сравнения двух массивов с одинаковыми типами элементов?C#

Место общения программистов C#
Ответить
Anonymous
 Можно ли использовать отражение для сравнения двух массивов с одинаковыми типами элементов?

Сообщение Anonymous »

Мой класс выглядит примерно так:

Код: Выделить всё

public class Test
{
public A[] ArrayA { get;set; }
}

public class A
{
public string P1 { get;set; }
public int P2 { get;set; }
}
Предположим, у меня есть два объекта класса Test. Я хочу использовать отражение для сравнения этих двух объектов, предполагая, что длина массива обоих свойств ArrayA одинакова в обоих объектах.
Например:

Код: Выделить всё

Test a = new Test();
Test b = new Test();

// fill them with some info.

var props = typeof(Test).GetProperties();

foreach (var prop in props)
{
var arrayA = prop.GetValue(a);
var arrayB = prop.GetValue(b);

for (int i = 0; i < arrayA.Lenght; i++)
{
var item1 = arrayA.GetValue(i);
var item2 = arrayB.GetValue(i);

// Do Comparison of item1 and item2
}
}
И вот здесь я столкнулся с проблемой. item1 и item2 относятся к типу объекта. Кажется, я не могу получить от него исходный тип. Я могу получить тип из массива. Как мне его использовать, чтобы получить нужные свойства в элементах item1 и item2? Я хочу использовать отражение, чтобы получить информацию о свойствах элемента1 и элемента2, чтобы провести сравнение. Это осуществимо?

Подробнее здесь: https://stackoverflow.com/questions/792 ... lement-typ
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»