0

我有一张这样的桌子......

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/SlopeMidPointMUKEY。我的问题是:如何将这些字段值中的每一个添加到 a 中SortedList?我看过这个SortedList类,在我看来你只能有两个元素(键、值)。如何存储三个元素?或者,我应该看另一个像Listor的类ArrayList吗?

4

2 回答 2

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);

或数据结构上的任何其他属性。

于 2012-06-28T23:22:35.270 回答
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 排序的列表

希望这可以帮助...

于 2012-06-28T23:34:25.943 回答