日期:2014-05-17  浏览次数:20898 次

DataRow[]转成String[]高手来优化一下代码
我觉得这个方法比较麻烦,高手给优化一下,或者给一个更好的方法。

 DataRow[] drArr = DtCustMailList.Select("Custid='" + CustID + "'");
                   if (drArr.Length == 0)
                   { return; }
                   int drRow = 0;

                   string[] sendto = new string[drArr.Length];                 
                 foreach(DataRow dra in drArr)
                 {
                     sendto[drRow] = dra["CustMailAddress"].ToString();
                     drRow++;                    
                 }


------最佳解决方案--------------------
用linq可以简单点:

string[] sendto = drArr.Select(row => row["CustMailAddress"].ToString()).ToArray();

------其他解决方案--------------------

var sendto = DtCustMailList.AsEnumerable().Where(p => p.Field<string>("Custid") == CustID).Select(p => p.Field<string>("CustMailAddress"));

------其他解决方案--------------------
不麻烦啊,挺好的啦……

DataRow[] drArr = DtCustMailList.Select("Custid='" + CustID + "'");
                   if (drArr.Length == 0)
                   { return; }
                   int drRow = 0;

                 string[] sendto = new string[drArr.Length];                 
                 for(int i=0;i<drArr.Length;i++)
                 {
                     sendto[i] = drArr[i]["CustMailAddress"].ToString();                   
                 }