相关疑难解决方法(0)

Func <T,TResult>如何工作?

我正在创建一个Distinct扩展方法,我可以传递如下标准.

persons.Distinct(p => p.Name); 
Run Code Online (Sandbox Code Playgroud)

我从网上获得了代码,但我很难理解其目的Func<T, TResult>.此外,当我说p => p.Name我发送String Name或我发送完整的Person对象?这是新的Distinct方法:

public static class ExtensionMethods
{
    public static IEnumerable<T> Distinct<T>(
        this IEnumerable<T> list, Func<T,object> checker)
    {
        return list.Distinct(new GenericComparer<T>(checker)); 
    }
}

public class GenericComparer<T> : IEqualityComparer<T>
{
    private Func<T, object> _checker; 

    public GenericComparer(Func<T,object> checker)
    {
        _checker = checker; 
    }

    public bool Equals(T x, T y)
    {
        return _checker(x).Equals(_checker(y));
    }

    public int GetHashCode(T obj)
    {
        return _checker(obj).GetHashCode(); 
    }
}
Run Code Online (Sandbox Code Playgroud)

以下是用法:

static void Main(string[] args)
{ …
Run Code Online (Sandbox Code Playgroud)

c# lambda

19
推荐指数
2
解决办法
8017
查看次数

webgrid中的Mvc 3 texbox(剃须刀)

简单问:如何让文本框显示值.item.LastName上的代码失败

@model List<Mvc2010_11_12.Models.Employee>
@{
    var grid = new WebGrid(source: Model,defaultSort: "FirstName",rowsPerPage: 3);
}

<div id="grid1">
    @grid.GetHtml(columns: grid.Columns(
        grid.Column("LastName"),
        grid.Column(format: (item) => Html.TextBox("LastName", item.LastName))
    ))
</div>
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc webgrid razor

6
推荐指数
2
解决办法
2万
查看次数

标签 统计

asp.net-mvc ×1

c# ×1

lambda ×1

razor ×1

webgrid ×1