[英]How to add new claims to claim array using foreach loop in C#?
我想在 foreach 循環中向聲明數組添加新聲明。 怎么做?
//userRoles is a list of string contains roles.
var userRoles = _repository.GetRolesOfUser(username);
var claim = new[]
{
new Claim("username", username)
};
//I want to add new claims to claim like below.
//When I put Add I am getting error like this
// "Claim[] doesn't contain definition for Add."
foreach(var userRole in userRoles)
{
claim.Add(new Claim("roles", userRole));
}
我最后想要的是這樣的,其中 Role_1、Role_2 等來自 userRole 列表。
var claim = new[]
{
new Claim("username", username)
new Claim("roles", "Role_1")
new Claim("roles", "Role_2")
new Claim("roles", "Role_3")
new Claim("roles", "Role_4")
}
正如約翰所說, C# 中的數組不包含 add 方法。 它僅包含 append 方法。
如果要將新元素添加到數組中,則應使用 append 而不是添加。
更多細節,您可以參考下面的測試演示代碼:
var claims = new[]{
new Claim("username", "aaa")
};
claims.Append(new Claim("aaa","aaa"));
你的代碼應該是這樣的:
//userRoles is a list of string contains roles.
var userRoles = _repository.GetRolesOfUser(username);
var claim = new[]
{
new Claim("username", username)
};
//I want to add new claims to claim like below.
//When I put Add I am getting error like this
// "Claim[] doesn't contain definition for Add."
foreach(var userRole in userRoles)
{
claim .Append(new Claim("roles", userRole));
}
或者您可以使用List<Claim>
而不是var claims = new[]
,如下所示:
var claim = new List<Claim>();
claim.Add("username", "aaa");
claim.Add("username", "bbbb");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.