1

メンバーのマップを作成したいのですが、すべてのメンバーには、名、姓、ユーザー名の3つのプロパティがあります。listeのリストのように、ただしマップを使用して作成するにはどうすればよいですか。

だから私は次のようなものが欲しいです:

var membres= {['lastname': 'Bonneau',
              'firstname': 'Pierre',
              'username': 'mariobross'],
              ['lastname': 'Hamel',
               'firstname': 'Alex',
               'username': 'Queenlatifa'],
            };

ご存知のように、このコードは機能しません。しかし、それは私がやろうとしていることをかなりよく説明しています。

4

5 に答える 5

3

ここで2つの構成を混同していると思います。

この言語の紹介を読んでください:http ://www.dartlang.org/docs/dart-up-and-running/ch02.html#lists

[...]リストは、省略構文で表すことができる要素のリストです。

var list = [1, 2, "foo", 3, new Date.now(), 4];

マップは中括弧の省略構文で表すことができますが、次のようになります。

var gifts = {                         // A map literal
// Keys       Values
  'first'  : 'partridge',
  'second' : 'turtledoves',
  'fifth'  : 'golden rings'
};

それでは、コードを変更して機能させましょう。

var members = [
  {
    'lastname': 'Bonneau',
    'firstname': 'Pierre',
    'username': 'mariobross'
  },
  {
    'lastname': 'Hamel',
    'firstname': 'Alex',
    'username': 'Queenlatifa'
  }
];

たとえば、次のような情報を印刷できます。

members.forEach((e) {
  print(e['firstname']);
});
于 2012-11-26T06:50:47.723 に答える
2

私があなたの意図を正しく理解しているなら、あなたは地図のリストを欲しがっています。あなたが混乱[していることを除いて、あなたが持っているものは正しいです{. 以下の作品:

var membres = [
          {'lastname': 'Bonneau',
           'firstname': 'Pierre',
           'username': 'mariobross'},
          {'lastname': 'Hamel',
           'firstname': 'Alex',
           'username': 'Queenlatifa'}
        ];

例として、すべてのユーザー名のリストを取得するには:

print(membres.map((v) => v['username']));
于 2012-11-26T04:34:51.097 に答える
1

が本当に必要ない場合はMap、クラスを使用してコードの構造を改善するのはどうですか :

class Member {
  String firstname;
  String lastname;
  String username;
  Member(this.firstname, this.lastname, this.username);
}

main() {
  final members = new List<Member>();
  members.add(new Member('Pierre', 'Bonneau', 'mariobross'));
  members.add(new Member('Alex', 'Hamel', 'Queenlatifa'));
  // use members
}
于 2012-11-26T10:44:22.080 に答える
0

こういう意味ですか?

// FirstName => LastName => Value
var lookup = new Map<String, Map<String, String>>();

// get / set values like this
void setValue(String firstName, String lastName, String value) {
   if (!lookUp.containsKey(firstName)) 
       lookUp[firstName] = new Map<String, String>();
   lookUp[firstName][lastName] = value;
}

String getValue(String firstName, String lastName) {
   if (!lookUp.containsKey(firstName)) return "";
   return lookUp[firstName][lastName];
}
于 2012-11-26T08:52:38.737 に答える