我的代码是:
var serverManager = new ServerManager();
var regex = new Regex("^(http|https)://");
var host = regex.Replace(url, "");
var instance = serverManager.Sites.First(
site => site.Bindings.First(
binding => binding.Host == host
)
);
你可以看到我尝试对第一个属性进行第二次选择,因为Bindings
是一个集合,我需要这个集合的特定项目。我收到这个错误:
Cannot implicitly convert type 'Microsoft.Web.Administration.Binding' to 'Bool'.
有什么想法解决这个问题吗?
答案 0 :(得分:2)
您正在寻找
var instance = serverManager.Sites.First(
site => site.Bindings.Any(
binding => binding.Host == host
)
);
site.Bindings.First(binding => binding.Host == host)
返回Binding
,但它位于serverManager.Sites.First(...)
内,后者又需要谓词(返回bool
),而不是Binding
。
上面的代码段使用Any
来获取与Host == host
绑定的第一个网站。
答案 1 :(得分:1)
var instance = serverManager.Sites.SelectMany(b =>b.Bindings).First(
binding => binding.Host == host);
那应该解决它。