連絡先を表示するリスト ビューがあり、name
それnumber
が列です。メッセージを表示する別のリストビューがあります- phone number
(メッセージが受信された場所から)、message
列です。メッセージリストビューにデータを入力するときに、電話番号列と連絡先リスト番号列を比較し、一致する場合はメッセージリストビューの番号列を連絡先名に置き換えます。
これは可能ですか?解決策を提供してください。
これが役立つかどうかを確認してください:
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
の2つをします: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.Number
とがあり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
}
});
注:テストされていません。うまくいくための何か。
お役に立てれば。