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

用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
public string[] arrs(string str)
{
    return str.Split('|');
}


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

------解决方案--------------------
如果能保证每次查询最多只有一条匹配的记录,请试试下面这样的:
C# code
string[] result = ip.lqDB.IP_Table
        .Where(w=>w.ID == '1')
        .Select(r=>r.IP_LIST)
        .SingleOrDefault()
        .Split("|");

------解决方案--------------------
你的这个问题我刻好像已经回答过你了吧

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

此处不要用匿名类

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

string v = (from u in db.Orders
                        select u.ShipName).FirstOrDefault();
               string[] my=v.Split('|');
               foreach (var vv in my)
                   Console.WriteLine(vv);

               /*输出
                * 172.168.1.1
                * 172.168.1.2
                * 172.168.1.3|
                */