繁体   English   中英

Select 来自通用项目的属性参数(函数)

[英]Select a property parameter (Function) from a Generic Item

我有一个组件,其中接收一个泛型类型和一个Func<TItem, string>到 select 一个属性以及一个名为 Data 的所述类型的列表。 对于 select 列表中的属性,它相当简单: Data.Select(Property)并且我得到了所述属性的列表。 但是,我现在要做的不是 select 列表,而是 select 单个项目TSelected ,来自数据(如果有的话),其中属性等于我称为tvalue的某个值。

[Parameter]
public List<TItem> Data { get; set; }

[Parameter]
public Func<TItem, string> Property { get; set; }

[Parameter]
public TItem Selected { get; set; }

...

private string _value;

[Parameter]
public string Value
{
    get => _value;
    set
    {
        // if it is equals do nothing
        if (string.Equals(_value, value) || value == null)
            return;

        _value = value;

        var selected = Data.Select(Property).FirstOrDefault(x => string.Equals(value, x));

        if (!string.IsNullOrEmpty(selected))
        {
            /* Don't know how to select the property from a single TItem */
            Selected = Data.Where( x => x.??? == selected).FirstOrDefault();
        }
    }
}

您的Property func 接受TItem并返回您想要的属性,对吗? 所以只需在 where 子句中使用它。

Selected = Data.Where( x => Property(x) == selected).FirstOrDefault();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM