2

我有一个显示联系人的列表视图-name并且number是列。我有另一个显示消息的列表视图- phone number(从接收消息的位置),message作为列。现在,当我填充我的消息列表视图时,我想将电话号码列与联系人列表号码列进行比较,然后如果匹配,则将消息列表视图的号码列替换为联系人姓名。

这可能吗?请提供解决方案。

4

2 回答 2

1

看看这是否可以帮助您:

           if (messagelist.Items.Count > 0)
            {
                for (int i = 0; i < messagelist.Items.Count; i++)
                {
                    string mnum = messagelist.Items[i].Text;

                    for (int j = 0; j < contactlist.Items.Count; j++)
                    {
                        if (contactlist.Items[j].SubItems[1].Text == mnum)
                        {
                            messagelist.Items[i].Text = contactlist.Items[j].Text;
                        }

                    }
                }
            }

我假设联系人列表的第二列中有数字。

于 2012-08-14T09:00:14.090 回答
0

我首先join要两个lists号码/电话号码:

var matchingList = (from c in ContactList
                    join m in MessageList on c.Number equals m.PhoneNumber
                    select new {ContactName = c.Name
                              , ContactNumber = c.Number
                              , Message = m.Message
                              , PhoneNumber = m.PhoneNumber } );

现在你有一个list匹配的Contact.Numberand Message.PhoneNumber

现在您可以遍历这些项目并设置Name

MessageList.Foreach( x => 
{
    var matchedItem = matchingList.FirstOrDefault( y => y.Massage == x.Message && y.PhoneNumber == x.PhoneNumber);

    if(matchedItem != null)
    {
        x.PhoneNumber = matchedItem.Name
    }
});

注意:未经测试。只是一些工作。

希望这可以帮助。

于 2012-08-08T07:25:43.947 回答