Satya
Satya

Reputation:

searching a List<>

I have a List<Order>

public int OrderID { get; set; }
public string CustID { get; set; }
public string Details { get; set; }

I want to write a method that accepts a ID, then searches this List for matching records that have same CustID and returns ORderID and Details in a List<>

Upvotes: 0

Views: 249

Answers (3)

CRice
CRice

Reputation: 12567

    public List<Order> Get(string id)
    {
        List<Order> orders = new List<Order>(); // pass this in as a param or globally refer to it

        var query = from o in orders
                    where o.CustID == id
                    select o;
        return query.ToList();            
    }

Or if you want to specifically return only those two fields maybe something like:

public class Order : IOrderDetails
    {
        public int OrderID { get; set; }
        public string CustID { get; set; }
        public string Details { get; set; }
    }

    public interface IOrderDetails
    {
        int OrderID { get; set; }
        string Details { get; set; }
    }

    public List<IOrderDetails> Get(string id)
    {
        List<Order> orders = new List<Order>(); // pass this in as a param or globally refer to it

        var query = from o in orders
                    where o.CustID == id
                    select o as IOrderDetails;
        return query.ToList();
    }

Upvotes: 1

Ryu
Ryu

Reputation: 8749

Assuming those properties you listed belong to a class.

string searchId="15";

  var list = (from item in myList 
              where item.OrderId == searchId 
              select new {OrderId= item.OrderId,Details = item.Details }).ToList();

Just wrote that without compiling... good luck.

Since you only wanted OrderID and Details I returned an anonymous object. Could also just return item.

Upvotes: 0

Rex M
Rex M

Reputation: 144122

This will get a sequence of Order objects that match the criteria:

var ordersIWant = myList.Where(order => order.CustID == "some customer ID");

Upvotes: 2

Related Questions