[英]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.