gpt4 book ai didi

c# - 如何通过 Func 参数设置 LINQ SelectMany 投影?

转载 作者:行者123 更新时间:2023-12-03 14:36:17 26 4
gpt4 key购买 nike

我有一个函数,它从集合中返回属性值列表:

    public static List<string> GetSpeakerList()
{
var Videos = QueryVideos(HttpContext.Current);
return Videos.Where(v => v.Type == "exampleType"
.SelectMany(v => v.SpeakerName)
.Distinct()
.OrderBy(s => s)
.ToList();
}

我想要一个通用版本,它可以让我确定我想要投影的字段 - 例如,我希望允许选择 Video.Length 或 Video.Type,而不是 SpeakerName。

我知道 SelectMany 需要一个 Func,那么使 Func 可配置以允许将其作为参数传递到此函数中的最佳方法是什么?

最佳答案

将函数作为参数添加到方法中。

public static List<string> GetVideosAttribute( Func<Video,string> selector )
{
var Videos = QueryVideos(HttpContext.Current);
return Videos.Where(v => v.Type == "exampleType"
.Select( selector )
.Distinct()
.OrderBy(s => s)
.ToList();
}


var speakers = GetVideosAttribute( v => v->SpeakerName );
var topics = GetVideosAttribute( v => v->Topic );

关于c# - 如何通过 Func 参数设置 LINQ SelectMany 投影?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1278989/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com