C#如何遍历表行,只向SortedList添加某些字段名称和值

时间:2012-06-28 23:06:01

标签: c#

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

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_AreaSlopeMidPointMUKEY)中获取某些字段/值。我的问题是:如何将这些字段值添加到SortedList?我查看了SortedList类,在我看来,你只能有两个元素(Key,Value)。我如何存储三个元素?或者,我应该查看另一个类,如ListArrayList

2 个答案:

答案 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

排序的列表

希望这会有所帮助......