我有一个int []数组.我需要获取一个int并将其附加到数组的末尾,而不会影响该数组中其他项的位置.使用C#4和LINQ实现这一目标的最优雅方式是什么?
我的代码:
int[] items = activeList.Split(',').Select(n => Convert.ToInt32(n)).ToArray();
int itemToAdd = ddlDisabledTypes.SelectedValue.ToInt(0);
// Need final list as a string
string finalList = X
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
最简单的方法是稍微改变你的表达方式.首先转换为a List<int>,然后添加元素,然后转换为数组.
List<int> items = activeList.Split(',').Select(n => Convert.ToInt32(n)).ToList();
int itemToAdd = ddlDisabledTypes.SelectedValue.ToInt(0);
items.Add(itemToAdd);
// If you want to see it as an actual array you can still use ToArray
int[] itemsAsArray = items.ToArray();
Run Code Online (Sandbox Code Playgroud)
根据您的最后一行,虽然您似乎希望将所有信息作为string值返回.如果是,那么您可以执行以下操作
var builder = new StringBuilder();
foreach (var item in items) {
if (builder.Length != 0) {
builder.Append(",");
}
builder.Append(item);
}
string finalList = builder.ToString();
Run Code Online (Sandbox Code Playgroud)
如果总体目标只是在字符串的末尾添加一个项目,那么直接执行它而不是转换为int集合然后返回字符串会更有效.
int itemToAdd = ddlDisabledTypes.SelectedValue.ToInt(0);
string finalList = String.IsNullOrEmpty(activeList)
? itemToAdd.ToString()
: String.Format("{0},{1}", activeList, itemToAdd);
Run Code Online (Sandbox Code Playgroud)