Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
404 views
in Technique[技术] by (71.8m points)

c# - create object from LINQ

I have an object:

public class DataItem
{

    public string Location
    {
        get;
        set;
    }

    public List<string> PersonList
    {
        get;
        set;
    }
}

I have some results from a table that return something like:

Room1 John
Room1 Jim
Room1 Dawn
Room1 Bob
Room1 Katie

I have some LINQ that I've written:

var grouped = from table in sqlResults.AsEnumerable()
              group table by new { placeCol = table["LOCATION"] } into groupby
              select new
              {
                  Value = groupby.Key,
                  ColumnValues = groupby
              };

Which groups my results... But I'd like to put this into my object (DataItem). I've seen a couple of examples but nothing has worked... What am I missing?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
  1. Don't group on a new anonymous object with a single value representing your location, just group on the location

  2. Don't select a new anonymous object as the result, select the object you care about

  3. Select out the person name from the group when getting the person list.


var grouped = from row in sqlResults.AsEnumerable()
                group row by row.Field<string>("LOCATION") into groupby
                select new DataItem()
                {
                    Location = groupby.Key,
                    PersonList = groupby.Select(row => 
                        row.Field<string>("Person")).ToList();
                };

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...