Рассмотрим следующую функциюLINQ игнорировании где, если SomeObject является нулевым
public static string UpdateCommand<T>(List<string> Except=null,List<string> Only=null)
{
if (Except != null && Only != null)
{
throw new Exception();
}
List<PropertyInfo> properties = typeof(T).GetProperties().ToList();
if (Except != null)
{
for (int i = properties.Count; i-- > 0;)
{
if (Except.Contains(properties[i].Name)) properties.RemoveAt(i);
}
}
if(Only != null)
{
for (int i = properties.Count; i-- > 0;)
{
if (!Only.Contains(properties[i].Name)) properties.RemoveAt(i);
}
}
//etc...
}
требуется 2 дополнительных параметров, они могут быть как нуль или один из них может иметь значение, но по крайней мере один из них должен быть пустым.
Я пытаюсь выяснить синтаксис Linq для вышеописанного, есть ли способ написать оператор where, но игнорировать инструкцию where, если список для сравнения равен нулю?
В основном я ищу способ написать выше, используя только LINQ.
я не могу использовать Intersect или исключение, поскольку его между 2 различными типами