Я пытаюсь написать универсальный объектный компаратор для сортировки, но я заметил, что он не обрабатывает случай, когда одно из сравниваемых значений является нулевым.Когда объект нулевой, я хочу, чтобы он рассматривал его так же, как пустую строку.Я попытался установить нулевые значения в String.Empty, но затем я получаю сообщение об ошибке «Объект должен иметь тип String» при вызове CompareTo () для него.
public int Compare(T x, T y)
{
PropertyInfo propertyInfo = typeof(T).GetProperty(sortExpression);
IComparable obj1 = (IComparable)propertyInfo.GetValue(x, null);
IComparable obj2 = (IComparable)propertyInfo.GetValue(y, null);
if (obj1 == null) obj1 = String.Empty; // This doesn't work!
if (obj2 == null) obj2 = String.Empty; // This doesn't work!
if (SortDirection == SortDirection.Ascending)
return obj1.CompareTo(obj2);
else
return obj2.CompareTo(obj1);
}
Я застрял сэто сейчас!Любая помощь будет оценена.