在我的应用程序中,我从网站下载一些数据,提供人口,景观区等景观信息。
解析html代码后,数据存储在对象列表中
public class Landscape
{
public int Population { get; set; }
public string Area { get; set; }
}
public List<Landscape> data;
没问题。按照填充dataGrid和我的应用程序的目的。现在,问题在哪里?网站上的区域信息采用半数字,半字符串格式。例如: 10 000 km2 。
我可以选择是否修剪 km2 后缀并将数据存储为int,或者不做任何操作并将数据存储为字符串。 由于我希望在原始格式的dataGrid中有数据,我决定不修剪。
最后,是否有一种订购行的方法(按区域大小)作为int,尽管它是字符串类型?
答案 0 :(得分:1)
您可以使用linq按翻译的值进行排序,但不要认为这会很快。
public class Landscape
{
public int Population { get; set; }
public string Area { get; set; }
public int TrimAndConvert()
{
/* Your Code to trim and convert to int */
}
}
data.OrderBy(landscape => landscape.Area.TrimAndConvert());
我认为更好的方法是将区域保存为数字并添加修剪部分仅用于输出。
public class Landscape
{
public int Population { get; set; }
public int AreaValue { get; set; }
public string AreaUnit { get; set; }
public string Area
{
get
{
return AreaValue.ToString() + AreaUnit;
}
}
}
答案 1 :(得分:0)