我创建了一个Listobj对象类型的列表。并为对象添加了一组值。
如何以不断增长的年龄方式从新列表中打印Listobj对象。
class Listobj
{
int age;
string name;
public int Age
{
get { return age; }
set { age = value; }
}
public string Name
{
get { return name; }
set { name = value; }
}
static List<Listobj> newlist = new List<Listobj>();
static void Main(string[] args)
{
/*newlist.Add(10);
newlist.Add(2);
newlist.Add(6);
newlist.Sort();
newlist.ForEach(Console.WriteLine);
Console.ReadLine();*/
Listobj obj = new Listobj();
int tempage = 23;
string tempname = "deepak";
obj.Age = tempage;
obj.Name = tempname;
Listobj.newlist.Add(obj);
foreach (Listobj item in newlist)
Console.WriteLine(item);
Console.ReadLine();
}
}
答案 0 :(得分:4)
我会覆盖ToString
课程中的Listobj
。
public class Listobj
{
private int age;
private string name;
public int Age
{
get { return age; }
set { age = value; }
}
public string Name
{
get { return name; }
set { name = value; }
}
public override string ToString()
{
return "Person: " + Name + " " + Age;
}
}
然后你可以像这样打印:
foreach (var item in newlist.OrderBy(person => person.Age)) Console.WriteLine(item);
答案 1 :(得分:1)
您可以使用Linq订购列表:
foreach (Listobj item in newlist.OrderBy(x => x.Age))
Console.WriteLine(item);
此外,还有一些改进:
给出了:
public class Listobj
{
public int Age { get; set; }
public string Name { get; set; }
public override string ToString()
{
return string.Format("My name is {0} and I'm {1} years old.", Name, Age;
}
}
答案 2 :(得分:0)
你可以使用IEnumerable变量,然后使用linq按升序对它们进行排序
IEnumerable<Listobj> temp = newlist;
temp = from v in temp
orderby v.age ascending
select v;
foreach (Listobj item in temp)
{
Console.WriteLine(item.Name +"with the age"+ item.Age);
}
Console.ReadLine();