while 语句将包含列表的所有索引
while statement which will include all indexes of the list
我有这样的 while 语句
while (selectedDish != listOfObjectDishes[0].Dish.ToString()
|| selectedDish != listOfObjectDishes[1].Dish.ToString()
|| selectedDish != listOfObjectDishes[2].Dish.ToString())
{}
该列表有 13 个索引,我想将它们全部包含(列表的每个索引)我该如何做对?
我认为最简单的方法是使用 linq 库的扩展方法 any()
检查您的列表。
using System;
using System.Linq;
using System.Collections.Generic;
public class Program {
public static void Main() {
List<Dish> listOfObjectDishes = new List<Dish>();
listOfObjectDishes.Add(new Dish("a"));
listOfObjectDishes.Add(new Dish("b"));
listOfObjectDishes.Add(new Dish("c"));
while(listOfObjectDishes.Any(dish => dish.ToString() == "b")) {
Console.WriteLine("Removing: " + listOfObjectDishes[0].ToString());
listOfObjectDishes.RemoveAt(0);
}
}
}
public class Dish
{
private string name = string.Empty;
public Dish(string name) {
this.name = name;
}
public override string ToString() {
return name;
}
}
我有这样的 while 语句
while (selectedDish != listOfObjectDishes[0].Dish.ToString()
|| selectedDish != listOfObjectDishes[1].Dish.ToString()
|| selectedDish != listOfObjectDishes[2].Dish.ToString())
{}
该列表有 13 个索引,我想将它们全部包含(列表的每个索引)我该如何做对?
我认为最简单的方法是使用 linq 库的扩展方法 any()
检查您的列表。
using System;
using System.Linq;
using System.Collections.Generic;
public class Program {
public static void Main() {
List<Dish> listOfObjectDishes = new List<Dish>();
listOfObjectDishes.Add(new Dish("a"));
listOfObjectDishes.Add(new Dish("b"));
listOfObjectDishes.Add(new Dish("c"));
while(listOfObjectDishes.Any(dish => dish.ToString() == "b")) {
Console.WriteLine("Removing: " + listOfObjectDishes[0].ToString());
listOfObjectDishes.RemoveAt(0);
}
}
}
public class Dish
{
private string name = string.Empty;
public Dish(string name) {
this.name = name;
}
public override string ToString() {
return name;
}
}