日期:2014-05-20  浏览次数:20769 次

用Linq查询的结果,怎样赋给一字符串变量?
在数据库 IP_Table表 的 IP_LIST字段 存有一字符串:172.168.1.1|172.168.1.2|172.168.1.3|
用LINQ查询如下 : 
C# code

var result = from ip in lqDB.IP_Table
                            where ID == '1' (查询某一条记录)
                            select new
                            (
                               IPA = ip.IP_LIST
                             );




怎样实现把查询结果赋给一字符串数组或字符串也可以。
这种方法提示 “无效参数”:
C# code

string sql =string.Join("|",result.ToArray());

Join 的第二个参数是个字符串数组,而此处的 result 是个结果集。

不知道怎样实现这样的功能,非常感谢!

------解决方案--------------------
C# code

 List<string> list = new List<string>();
            list.Add("172.168.1.1|172.168.1.2|172.168.1.3|");
            var result = from ip in list
                         select new { ip };
            foreach (var item in result)
                MessageBox.Show(item.ip);

------解决方案--------------------
C# code
var result = from ip in lqDB.IP_Table
                            where ID == '1' (查询某一条记录)
                            select ip.IP_LIST;  //此处不要使用匿名类

string sql =string.Join("|",result.ToArray());

------解决方案--------------------
其实使用匿名类也是可以了,只是代码繁琐了点:



var result = from ip in lqDB.IP_Table
where ID == '1' (查询某一条记录)
select new
(
IPA = ip.IP_LIST
);

string sql =string.Join("|",result.Select(p=>p.IPA).ToArray());