2016-04-07 14 views
0

私はこのような多くのオブジェクトがあります。文字列と匿名型を使用し

result=[name=person, date=04/09/2016 12:00:00 AM, data=[2,3]]//2 and 3 are the numbers after word 

これまでのところ、私はこれを試してみました:

var obj4 = new Data { name = "person", date = DateTime.Now.AddDays(1), data = "pr-214-2-20151224-word2-word3" }; 

を私は、このことが結果LINQクエリを作成したいです:

var listak=new List<Data>{obj,obj2,obj3,obj4}; 
    var u = listak.OrderByDescending(s => s.date).TakeWhile(s => s.date > DateTime.Now).Select(s=>new 
    { 
     name=s.name, 
     date=s.date, 
     data=s.data.Split(new []{"-"},StringSplitOptions.None).Select(m=>new 
     { 
      word = m.Where(c=>m.StartsWith("word")).Select(c=>m.Remove(0,4))//this line is incorrect, i dont know how to correct this part 
     }) 

    }); 

しかし、私は何をしたいのですか?私はそれをどのように達成できますか?

+0

結果は何ですか? – W92

+0

where句は、文字列分割の結果を処理するために移動する必要があります。あなたは "単語"で始まるビットだけを必要とします。 –

+0

@IanMercerはい、ありがとう、それは:) – someone

答えて

0

あなたはこれを試すことができます。

var obj4 = new { name = "person", date = DateTime.Now.AddDays(1), data = "pr-214-2-20151224-word2-word3" }; 
    var listak = new[] { obj4 }.ToList(); 
    var u = listak.OrderByDescending(s => s.date).TakeWhile(s => s.date > DateTime.Now).Select(s => new 
    { 
     name = s.name, 
     date = s.date, 
     data = s.data.Split(new[] { "-" }, StringSplitOptions.None).Where(c => c.StartsWith("word")).Select(m => m.Remove(0, 4)) 
    }); 

    Console.Write(u); 

enter image description here

関連する問題