[英]How to add item to array in C#
我有一個生成大約 150 個唯一字符串的循環。 如何將這些字符串添加到數組中?
這是我的循環:
for (int intCounter = 0; intCounter < projectCount; intCounter ++)
{
var projectname = project.value[intCounter].name;
var releaseUri = "http://tfs1:8080/tfs/defaultcollection/" + projectname + "/_apis/release/releases?api-version=3.0-preview.2&searchText=911&minCreatedTime=" + date + "T00:00:00.00Z";
Console.WriteLine(releaseUri);
}
Console.WriteLine(releaseUri)
打印每個 url。 但我想將 releaseUri 存儲在一個數組中。
列表通常比數組好。
var releaseUris = new List<string>();
foreach(var project in projects)
{
var releaseUri = $"http://tfs1:8080/tfs/defaultcollection/" + project.projectname + "/_apis/release/releases?api-version=3.0-preview.2&searchText=911&minCreatedTime=" + project.date + "T00:00:00.00Z";
releaseUris.Add(releaseUri);
}
@ShaneP,
您需要像這樣在 for 循環之外聲明一個數組。
string[] releaseUriArray = new string[projectCount];
for (int intCounter = 0; intCounter < projectCount; intCounter ++)
{
var projectname = project.value[intCounter].name;
var releaseUri = "http://tfs1:8080/tfs/defaultcollection/" + projectname + "/_apis/release/releases?api-version=3.0-preview.2&searchText=911&minCreatedTime=" + date + "T00:00:00.00Z";
// Here you are adding the releaseUri strings to the releaseUriArray
releaseUriArray[intCounter] = releaseUri;
}
// print your uris from the array here
for (int intCounter = 0; intCounter < projectCount; intCounter ++)
{
var releaseUri = releaseUriArray[intCounter];
Console.WriteLine(releaseUri);
}
在這種情況下,您可以使用數組,因為您知道元素的數量。 初始化它並隨時設置項目
var arr = new string[projectCount];
for (int intCounter = 0; intCounter < projectCount; intCounter ++)
{
var projectname = project.value[intCounter].name;
var releaseUri = "http://tfs1:8080/tfs/defaultcollection/" + projectname + "/_apis/release/releases?api-version=3.0-preview.2&searchText=911&minCreatedTime=" + date + "T00:00:00.00Z";
Console.WriteLine(releaseUri);
arr[intCounter] = releaseUri;
}
如果您現在projectCount
那么您可以創建一個具有所需元素編號的數組,並只需按索引設置其項目。
var urls = new string[projectCount];
for (int intCounter = 0; intCounter < projectCount; intCounter ++)
{
var projectname = project.value[intCounter].name;
var releaseUri = "http://tfs1:8080/tfs/defaultcollection/" + projectname + "/_apis/release/releases?api-version=3.0-preview.2&searchText=911&minCreatedTime=" + date + "T00:00:00.00Z";
urls[i] = releaseUri;
}
或者您可以只使用動態數組並使用Add()
方法添加元素,以便能夠在初始化后更改數組大小。
var urls = new List<string>();
for (int intCounter = 0; intCounter < projectCount; intCounter ++)
{
var projectname = project.value[intCounter].name;
var releaseUri = "http://tfs1:8080/tfs/defaultcollection/" + projectname + "/_apis/release/releases?api-version=3.0-preview.2&searchText=911&minCreatedTime=" + date + "T00:00:00.00Z";
urls.Add(releaseUri);
}
此外,您無需使用循環,只需使用LINQ 1 串代碼即可解決您的問題:
var urls = project
.value
.Select(p => "http://tfs1:8080/tfs/defaultcollection/" + p.projectname + "/_apis/release/releases?api-version=3.0-preview.2&searchText=911&minCreatedTime=" + date + "T00:00:00.00Z")
.ToArray();
一種簡單的方法是創建一個模板 Uri,其中包含項目名稱和日期的占位符(在字符串中使用{0}
和{1}
),然后使用一些Linq
擴展方法( Select
和ToList
)和string.Format
,您可以從Enumerable.Range
生成字符串:
// Project name and date will be inserted where {0} and {1} are below
string uriTemplate = "http://tfs1:8080/tfs/defaultcollection/{0}/_apis/release/" +
"releases?api-version=3.0-preview.2&searchText=911&minCreatedTime={1}T00:00:00.00Z";
string[] releaseUris = Enumerable.Range(0, projectCount)
.Select(i => string.Format(uriTemplate, project.value[i], date))
.ToArray();
列表會更好,因為您不知道要處理多少個項目。 看起來像這樣的List<String> myList = new List<String>();
然后只需myList.Add(releaseURi);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.