簡體   English   中英

更新列表<string>使用 linq C# 的值</string>

[英]Updating List<string> values using linq C#

我有一個字符串列表,如果列表中的某些項目與單獨的對象列表中的字符串值匹配,我想遍歷並更改值。

用戶將 email 地址輸入到包含 EventMembers 列表的事件 object 中:

List<string> EventMembers

然后我想檢查數據庫中的所有用戶以找到與輸入的電子郵件地址匹配的用戶名(電子郵件地址)

我知道我無法使用 foreach 循環更改列表中的值,但我不知道如何處理 linq。 基本上我正在嘗試做這樣的事情:

var allUsers = _userManager.Users
                    

                foreach (var a in allUsers)
                {
                    foreach (var e in @event.EventMembers)
                    {
                        if (e == a.UserName)
                        {
                            e = a.FirstName + a.LastName;
                        }
                    }
                }

最好的辦法是定義成員的初始集合,這樣您就不會在 foreach 仍在運行時繼續修改列表。 然后,您可以檢查EventMembers是否包含用戶名,然后通過使用索引訪問值來替換它。

var allUsers = _userManager.Users;
List<string> Members;
foreach (var a in allUsers)
{
     if (@event.EventMembers.Contains(a.UserName))
     {
         var index = @event.Members.IndexOf(a.UserName);
         Members[index] = a.FirstName + a.LastName;
     }
}
EventMembers = Members;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM