Возможно ли вернуть общий Func из метода? Я хочу сделать что-то вроде GetSortFunc ниже.метод return generic func C#
public class Example
{
private List<MyObject> _objects;
public Example()
{
_objects = new List<MyObject>
{
new MyObject {Id = 1, Name = "First", Value = 100.0},
new MyObject {Id = 2, Name = "Second", Value = 49.99},
new MyObject {Id = 3, Name = "Third", Value = 149.99}
};
}
public void Sort(SomeEnum sortOptions)
{
_objects = _objects.OrderBy(GetSortFunc(sortOptions));
}
private Func<MyObject, TKey> GetSortFunc(SomeEnum sortOptions)
{
switch (sortOptions)
{
case SomeEnum.First:
return x => x.Id;
case SomeEnum.Second:
return x => x.Name;
case SomeEnum.Third:
return x => x.Value;
}
}
}
SomeEnum и MyObject выглядит следующим образом:
public enum SomeEnum
{
First,
Second,
Third
}
public class MyObject
{
public int Id { get; set; }
public string Name { get; set; }
public double Value { get; set; }
}
Возможно ли это делать или я на ложном пути?
да это возможно :-) – Grundy
Похоже, это было бы намного меньше работы для вас, чтобы просто использовать '.OrderBy()', как это – Alex
Во-первых, это возможно, во-вторых, возможно ли это или нет, вы можете скомпилировать свой код и узнать. –