【问题标题】:Comparing listview column values with another listview column values and display the column value instead of other if it matches将 listview 列值与另一个 listview 列值进行比较,如果匹配则显示列值而不是其他值
【发布时间】:2012-08-08 06:57:18
【问题描述】:

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

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

【问题讨论】:

    标签: c# winforms listview compare contacts


    【解决方案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;
                            }
    
                        }
                    }
                }
    

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

    【讨论】:

      【解决方案2】:

      我会先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.NumberMessage.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
          }
      });
      

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

      希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-07-07
        • 1970-01-01
        • 1970-01-01
        • 2015-02-11
        • 1970-01-01
        • 1970-01-01
        • 2019-01-20
        相关资源
        最近更新 更多