将数据存储在数组、对象、结构、列表或类中.C#
本文关键字:列表 结构 对象 数据 存储 数组 | 更新日期: 2023-09-27 18:25:15
我想制作一个存储phones
的程序,如:
Brand: Samsung
Type: Galaxy S3
Price: 199.95
Ammount: 45
-------------------
Brand: LG
Type: Cookie
Price: 65.00
Ammount: 13
-------------------
etc, etc, etc,
做到这一点的最佳做法是什么
在php
中,我应该完成:
$phones = array(
array(
array("Brand" => "Samsung"),
array("Type" => "Galaxy S3"),
array("Price" => 199.95),
array("Ammount" => 45)
),
array(
array("Brand" => "LG"),
array("Type" => "Cookie"),
array("Price" => 65.00),
array("Ammount" => 13)
)
)
这在C#
中也可能吗,因为我不知道列表中有多少部手机,而且数据类型不同:string
、decimal
、int
。我不知道该用什么,因为你有lists
、structs
、objects
、classes
等等。
提前感谢!
使用类似的类
public class Phone
{
public string Brand { get; set; }
public string Type { get; set; }
public decimal Price { get; set; }
public int Amount { get; set; }
}
然后,您可以填充List<Phone>
,例如使用集合初始值设定项语法:
var phones = new List<Phone> {
new Phone{
Brand = "Samsung", Type ="Galaxy S3", Price=199.95m, Amount=45
},
new Phone{
Brand = "LG", Type ="Cookie", Price=65.00m, Amount=13
} // etc..
};
或者在与CCD_ 12的循环中。
一旦你填写了列表,你可以循环它,一次得到一部手机
例如:
foreach(Phone p in phones)
Console.WriteLine("Brand:{0}, Type:{1} Price:{2} Amount:{3}", p.Brand,p.Type,p.Price,p.Amount);
或者你可以使用列表索引器访问给定索引的特定手机:
Phone firstPhone = phones[0]; // note that you get an exception if the list is empty
或通过LINQ扩展方法:
Phone firstPhone = phones.First();
Phone lastPhone = phones.Last();
// get total-price of all phones:
decimal totalPrice = phones.Sum(p => p.Price);
// get average-price of all phones:
decimal averagePrice = phones.Average(p => p.Price);
最好的解决方案是创建类似于的Phone object
public class Phone {
public string Brand { get; set; }
public string Type { get; set; }
public decimal Price { get; set; }
public decimal Ammount { get; set; }
}
并将此对象存储在列表中(例如):
List<Phone> phones = new List<Phone> ();
phones.Add(new Phone { Brand = "Samsung", Type = "Galaxy S3", Price = 199.95, Amount = 45 });
etc
你会有一个模型类,比如
class Phone
{
public string Brand {get; set;}
public string Type {get; set;}
public decimal Price {get; set;}
public int Amount {get; set;}
}
然后创建一个手机列表,你可以使用类似的代码
var phones = new List<Phone>
{
new Phone{Brand = "Samsung", Type = "Galaxy S3", Price = 199.95, Amount = 45},
new Phone{Brand = "LG", Type = "Cookie", Price = 65.00, Amount = 13},
}