我想创建一个for循环来检查索引值是否重复,以及是否必须从原始列表中删除它并显示没有重复索引值的更新列表。
我有和Array(称为Original)重复多个值,然后我创建了一个具有相同精确值的临时数组(称为TempArray)。
我想相互检查Original和TempArray值,看看是否有重复。
我希望我的代码与之前的代码类似,我从数组中间删除了一个索引,如下所示
for (int i = 0; i < Original.Length; i++)
{
TempArray[i] = Original[i];
}
Original = new int[Original.Length - 1];
//Set index to delete
int DeleteIndex = 3;
//modify size of Orignial array and copy in array without deleted element index
for (int i = 0; i < TempArray.Length; i++)
{
if (i < DeleteIndex)
{
Original[i] = TempArray[i];
}
else if (i > DeleteIndex)
{
Original[i - 1] = TempArray[i];
}
}
P.S 即可。 Original[]
是文本文件中的数组。对不起,如果我的解释很难理解,因为我不熟悉计算机编程。
也有没有办法在没有LINQ的情况下执行此代码,我必须创建使用数组,因为它的所有内容都是在学校教授的?
答案 0 :(得分:3)
花了一些时间来了解你想要的东西:)
检查索引值是否已重复,是否必须从原始列表中删除它并显示没有重复索引值的更新列表
简称为distinct values
。有一个LINQ方法.Distinct()
:
Original = Original.Distinct().ToArray();
它将删除所有重复的值。
我从数组中间删除了一个索引
转换为List
,应用RemoveAt
并返回后,您可以更轻松地完成此操作:
var list = new List<int>(Original);
list.RemoveAt(DeleteIndex);
Original = list.ToArray();
P.S。假设你对数组中的值说“index”,那就非常混乱了。数组不存储索引 - 索引通常被理解为数组的键。
答案 1 :(得分:1)
这可能会为你做到这一点。我假设您需要从数组中删除重复
Original = Original.Distinct().ToArray();
将使用默认的相等比较器来比较值,从序列中返回不同的元素。