1

好吧,这就是交易。我正在进行数据转换,我从两个数据库中获取数据并将其放入另一个数据库。我正在添加一个联系人列表,然后我正在添加一个通信记录列表。为了简化这个过程,我把所有的通讯记录和联系人的家庭地址做了一个小数组。现在我正在尝试使用 lambda 表达式从数组中整理出电子邮件地址,但我遇到了问题。到目前为止的代码如下:

            DataRow[] Comms = dtComms.Select("household_id = " + previousID);

            if (Comms.Where(x => x.Field<string>("communication_type") == "Home Phone").Count() > 0)
            {
                string HomePhone = rNDigits.Replace(Comms[0].Field<string>("communication_value").ToString().Trim(), "");
                if (HomePhone.Length > 6)
                    oAddress._Phone = HomePhone;
            }
            if (Comms.Where(x => x.Field<string>("communication_type") == "Email").Count() > 0)
            {
                string FamilyEmail = rNDigits.Replace(Comms[0].Field<string>("communication_value").ToString().Trim(), "");
                if (FamilyEmail.Contains('@') && FamilyEmail.Contains('.'))
                    oAddress._FamilyEmail = FamilyEmail;
            }

问题是,很明显,这总是会返回数组中的第一个值,这可能并不总是我想要的。如何更改代码以使其仅从数组中选择与包含电子邮件的条目匹配的值?或者,有没有更好的方法来搜索数组中的值?

4

1 回答 1

2

我建议在这种情况下使用简单的 for 或 foreach 循环,LINQ 不能修改数据,只能选择它。

于 2012-09-17T19:03:57.603 回答