From: sto.mar@... Date: 2013-01-05T23:16:21+09:00 Subject: Re: Using and Querying Struct Am 05.01.2013 13:40, schrieb Wayne Brissette: > I'm trying to use the Stuct class to store some data. In my case, a > bunch of data. But, in simplistic terms I've come up with the > following example of what I'm looking for. > > class Mailinglist < Struct.new(:f_name, :l_name, :city) end > There is no need to subclass, just use Mailinglist = Struct.new(:first_name, :last_name, :city) (Btw, your class name is misleading, `ListMember' would be more accurate.) > As an example, let's say I have two people John Smith and Jane Smith > who live in Smithville. Is there an easy way to query an array > containing Structs to determine of :l_name, and :city of with the > array match and only produce one item from the array? data = [ Mailinglist.new('Mike', 'Jones', 'Pineville'), Mailinglist.new('Jane', 'Smith', 'Smithville'), Mailinglist.new('John', 'Smith', 'Smithville'), Mailinglist.new('Sally', 'Taulton', 'Ashville') ] matches = data.select {|member| member.city == 'Smithville' && member.last_name == 'Smith' } matches.first # => # Regards, Marcus > I know you could sort the array so all the data is sorted on l_name > and then city. That would give you some order to the data: > > # > # > # > # > > > but would you have to iterate through the array to find all the > matches to city, then l_name? I wouldn't think so, but I'm not sure > how else to do it at this point. > > Wayne > --