0

我没有广泛使用 LINQ,但是我使用它的次数越多,我就越意识到它的强大功能。如果您想从有界项的属性中排序,使用 LinqDataSource.OrderBy 子句显然很容易,但如果您想根据方法返回对项进行排序怎么办?以这门课为例(请忽略古怪的设计——它只是用来强调我的观点):

public class DataItem
{
    private string Id { get; set; }

    private int SortValue { get; set; }

    public DataItem(string id, int sortValue)
    {
        this.Id = id;
        this.SortValue = sortValue;
    }

    public int GetSortValue()
    {
        return SortValue;
    }
}

有没有一种方法可以在 LinqDataSource 上设置 orderby 表达式,以便它使用从 GetSortValue 返回的值(即按属性以外的其他成员排序)但不改变 DataItem 类?

4

2 回答 2

1

如果该方法没有参数,您可以用属性包装它吗?

public int SortOrderBy { get { return GetSortValue(); } }

编辑:如果参数是常量或类字段/属性,这也将起作用。

于 2010-11-23T10:45:10.673 回答
0

MSDN文档提到确实可以进行自定义排序,但我可能误解了您的问题。

于 2010-11-23T10:47:19.267 回答