使用Linq迭代ConfigurationManager.ConnectionStrings?

时间:2014-11-19 09:09:25

标签: c# asp.net-web-api

是否可以做这样的事情?

var strings = ConfigurationManager.ConnectionStrings;

var names = (from d in strings
             select new ConnectionName(d.Name));

3 个答案:

答案 0 :(得分:9)

是的,但由于ConnectionStrings未实现强类型IEnumerable,因此您必须告诉LINQ该集合包含的类型。

使用from ConnectionStringSettings d in stringsConfigurationManager.ConnectionStrings.Cast<ConnectionStringSettings>()

答案 1 :(得分:0)

您必须将其投放到其类型IEnumerable而不是IEnumerable<T>请参阅 Enumerable.Cast

  
    

将IEnumerable的元素转换为指定的类型。

  
  var t = from c in connectionString.Cast<System.Configuration.ConnectionStringSettings>()
          select c.Name;

答案 2 :(得分:0)

您可以循环使用foreach:

  

只需使用您要查找的conn属性

foreach (var conn in ConfigurationManager.ConnectionStrings.Cast<ConnectionStringSettings>())
{
    conn.Name
}