none
有关于struct结构的使用! RRS feed

  • 问题

  • 不考虑类,只是考虑struct的定义.
    比如定义某个坐标上的城市:
    struct zuobiao
    {
          int dongjing;
          int beiwei;
          string chengshi;
              ???????//是不是我应该在前面创建3个枚举来定义"dongjing""beiwei""chengshi"
    }

    如果我要达到用户选择东经编号,北纬编号后,能显示出那个城市,还缺少些什么么???
         我是新学的,也许我的理解不对,请多包涵,拜托!

    突然有些明白,我定义了一个结构以后,是不是可以用这个结构来创建我需要的变量,但是能不能达到我上面那个要求呢?=.=求教了..

    2010年4月27日 23:01

答案

  • 你好!

         我认为如果数据不是很多的情况下,这样的需求用Dictionary类来实现比较合适:

    http://msdn.microsoft.com/zh-cn/library/xfhwa508%28VS.80%29.aspx

         东京和北纬和起来当作Key,然后城市名作为Value

         如果数据很多,可以在数据库中建立一张表来储存这样的数据!


    周雪峰
    • 已标记为答案 Yookl 2010年4月28日 21:32
    2010年4月28日 1:57
    版主

全部回复

  • 1.是不是我应该在前面创建3个枚举来定义"dongjing""beiwei""chengshi"
       不可以。

    2.如果我要达到用户选择东经编号,北纬编号后,能显示出那个城市,还缺少些什么么???
      这个应该是一个查询(自己实现一个查询的方法,遍历你的结构体数组)。如果想直接访问,最好是用2维数组,可以根据前2个下标直接得到城市。

    3.突然有些明白,我定义了一个结构以后,是不是可以用这个结构来创建我需要的变量,但是能不能达到我上面那个要求呢?=.=求教了..
      是的,可以。

     

     


    family as water
    2010年4月28日 1:24
  • 你好!

         我认为如果数据不是很多的情况下,这样的需求用Dictionary类来实现比较合适:

    http://msdn.microsoft.com/zh-cn/library/xfhwa508%28VS.80%29.aspx

         东京和北纬和起来当作Key,然后城市名作为Value

         如果数据很多,可以在数据库中建立一张表来储存这样的数据!


    周雪峰
    • 已标记为答案 Yookl 2010年4月28日 21:32
    2010年4月28日 1:57
    版主
  • 同意雪峰兄所言,你可以这样来定义:

     // 坐标
        struct Coordinate
        {
          int longitude; // 经度
          int latutide; // 纬度
        };
        // 城市
        Dictionary<Coordinate, string> city = new Dictionary<Coordinate, string>();

    或者将struct当做values而将Coordinate作为keys也是可以的。因为每个城市对应的坐标是唯一的,而每个坐标对应的城市也是唯一的。不过建议你再加两个变量在struct来说明是东经还是西经,是北纬还是南纬。

    还有一点就是Dicationary<Tkeys, TValues>不支持IList接口,故其不能直接绑定到如DataGridView这样的数据源控件,因此在显示时也要费一些周折。

    2010年4月28日 5:26