我有一张这样的桌子......
FACILTY_NAME FACILITYID FIELDID MUSYM MUKEY SlopeMidPoint MLRA_ID Shape_Area MLRASYM FIPS_C
JMB Feeders 3557 18894 1839 1698712 6 22 34578.52926120000 72 08 56 20 31
JMB Feeders 3557 18894 1815 1698708 0 22 315937.13060200000 72 9 56 20 31
JMB Feeders 3557 18894 1650 1698692 0 22 232183.66600100000 72 10 56 20 31
JMB Feeders 3557 18894 5101 1698651 2 22 530405.24224000000 72 11 56 20 31
JMB Feeders 3557 18894 1506 1698655 6 22 94914.03552020000 72 12 56 20 31
JMB Feeders 3557 18894 1816 1698709 2 22 1036.37023796000 72 13 56 20 31
JMB Feeders 3557 18894 5100 1698650 0 22 532206.08141000000 72 14 56 20 31
JMB Feeders 3557 18894 1736 1698707 6 22 7.45379122495 72 15 56 20 31
我只需要从每行(Shape_Area
,SlopeMidPoint
和MUKEY
)中获取某些字段/值。我的问题是:如何将这些字段值添加到SortedList
?我查看了SortedList
类,在我看来,你只能有两个元素(Key,Value)。我如何存储三个元素?或者,我应该查看另一个类,如List
或ArrayList
?
答案 0 :(得分:0)
您需要使用SortedList
吗?这会给你一个你提到的键/值对。您可以生成一个映射到数据结构的类。
class Facility
{
public string Name { get; set; }
public int Id { get; set; }
public int FieldId { get; set; }
//etc, etc
}
然后,在读取数据时,无论是来自数据库还是平面文件,您只需为数据集中的每一行创建一个Facility
对象,然后将其添加到常规List<Facility>
List<Facility> facilities = new List<Facility>();
Facility facility = new Facility() { Name = "Foo", Id = 1 /* etc */ };
facilities.Add(facility);
然后,您可以使用LINQ获取值:
var results = yourList.Where(s => s.Id == 3557);
或数据结构上的任何其他属性。
答案 1 :(得分:0)
class SomeClass
{
string shape_Area {get; set;}
string SlopeMidPoint {get; set;}
string MUKEY {get; set;}
}
SortedList.Add方法将键和值作为对象,所以现在可以添加SomeClass作为值
像这样:sortedList.Add(someClass.MUKEY, someClass);
通过这种方式,您将获得按MUKEY
排序的列表希望这会有所帮助......