我是最近刚学习c#,发现了一些问题自己不能解决。 c# 删除数组一个数据,如果输入的数中没数组中的数,如何报错
我是这样解决的不知道有没有其他简单的办法。namespace array_delete
{
class Program
{
static void Main(string[] args)
{
int k, i;
int[] A = new int[] { 1, 12, 23, 64, 78, 100,0};
for (i = 0; i < A.Length - 1;i++ ) Console.Write("{0,4}", A[i]);
Console.WriteLine();
Console.WriteLine("请输入要删除的整数:");
string s = Console.ReadLine();
int x = int.Parse(s);
for (k = 0; k <A.Length; k++)
{ if (x== A[k]) break;
}
if (k == 7)
{
Console.WriteLine("请输入正确的数");
goto loop;
}
for (i = k; i < A.Length - 1; i++)
{
A[i] = A[i + 1];
}
Console.WriteLine("现在数组为:");
for (i = 0; i < A.Length - 2; i++) Console.Write("{0,4}",A[i]);
loop:
Console.ReadLine();
}
}
}
谁帮我解决一下,小弟谢谢啦
我是这样解决的不知道有没有其他简单的办法。namespace array_delete
{
class Program
{
static void Main(string[] args)
{
int k, i;
int[] A = new int[] { 1, 12, 23, 64, 78, 100,0};
for (i = 0; i < A.Length - 1;i++ ) Console.Write("{0,4}", A[i]);
Console.WriteLine();
Console.WriteLine("请输入要删除的整数:");
string s = Console.ReadLine();
int x = int.Parse(s);
for (k = 0; k <A.Length; k++)
{ if (x== A[k]) break;
}
if (k == 7)
{
Console.WriteLine("请输入正确的数");
goto loop;
}
for (i = k; i < A.Length - 1; i++)
{
A[i] = A[i + 1];
}
Console.WriteLine("现在数组为:");
for (i = 0; i < A.Length - 2; i++) Console.Write("{0,4}",A[i]);
loop:
Console.ReadLine();
}
}
}
谁帮我解决一下,小弟谢谢啦
{
Console.WriteLine("请输入正确的数");
goto loop;
}goto语句一般不建议使用。
你可以在这个if中直接return掉就可以了,
或者写出if...else的结构。报错的话
if (k == 7)
{
throw new ArgumentException(string.Format("数组中不存在元素:{0}", s));
}直接抛出一个异常即可。
int[] A = new int[] { 1, 12, 23, 64, 78, 100, 0 };
List<int> myListInt = new List<int>(A);
if (myListInt.Exists(FindInt))
“找到了!”
else
“没找到”;委托:
private static bool FindInt(int num)
{
if (num== 要找的数)
{
return true;
}
else
{
return false;
}
}
Console.WriteLine("请输入要删除的整数:");
string s = Console.ReadLine();
int x = int.Parse(s);
if (A.Any(y => x == y))
Console.WriteLine("没有");
else
A = A.Where(y => y != x).ToArray();