如何从列表中删除对象
我与这个代码几个小时战斗。 我需要一个建议。 如何通过在控制台中输入行星名称来删除整个对象? 下一个问题。如何编写代码以告知用户他提供了错误的信息,例如,他代替质量而不是int写了字符串? 我将感谢一些技巧 这是我的代码...
public class Lad
{
public string PlanetName { get; set; }
public MyDate Szczegoly { get; set; }
}
public class MyDate
{
public int masa { get; set; }
public int sredni { get; set; }
}
class Program
{
static void RemovePerson(List<Lad> _data, string planet)
{
var foundPerson = _data.FirstOrDefault(x => x.PlanetName == planet);
if (foundPerson != null)
_data.Remove(foundPerson);
}
static void End()
{
Environment.Exit(0);
}
static void Main()
{
Console.WriteLine("hej, dokonaj wyboru");
string Continue;
List<Lad> _data = new List<Lad>();
string choice = Console.ReadLine();
string uppchoice = choice.ToUpper();
do
{
switch (uppchoice)
{
case "ADD":
Console.WriteLine("Podaj nazwe planety");
string name = Console.ReadLine();
Console.WriteLine("Podaj mase");
int masa = Convert.ToInt16(Console.ReadLine());
Console.WriteLine("Podaj srednice");
int sred = Convert.ToInt16(Console.ReadLine());
_data.Add(new Lad()
{
PlanetName = name,
Szczegoly = new MyDate
{
masa = masa,
sredni = sred
}
});
var json = System.Text.Json.JsonSerializer.Serialize(_data);
Console.WriteLine(json);
break;
case "SAVE":
string json2 = JsonConvert.SerializeObject(_data, Formatting.Indented);
File.AppendAllText(@"tescikkk.json", json2);
Console.WriteLine("plik zapisany");
break;
case "LIST":
var path = @"tescikkk.json";
if (File.Exists(path))
{
string text = File.ReadAllText(path, System.Text.Encoding.UTF8);
Console.WriteLine(text);
}
break;
case "DELETE":
break;
case "EXIT":
End();
break;
}
Console.Write("Czy chcesz powtórzyć? (Y/N) : ");
Continue = Console.ReadLine();
} while (Continue != "N" && Continue != "n");
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要提供一个行星名称才能删除。然后,您可以返回false,如果找不到星球:
然后这样称呼:
You need to supply a planet name to be able to delete. You can then return false, if the planet isn't found:
Then call it like this:
处理“通知”的一种方法是这样做:
如果您返回非零对象,则可以找到并删除。无效的意思是“找不到”。
您也可以退还布尔值。
Java实际上更频繁地这样做。
请参阅:
因此您最终会得到类似的东西:
One way to handle the "notify" is by doing this:
if you return a non-null object, it was found and removed. null means "not found".
You could also return a boolean.
Java actually does this more often.
See :
https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html#remove-int-
thus you'd end up with something like: