文字列構造体のListのソートがしたいのですが、うまくいきません。
public struct Items
{
public string itemName;
public string value;
public string unit;
public string oder;
};
public List<Items> itemaList = new List<Items>();
このitemListには20レコードのデータが必要な順番で入っているのですが、oderには
1〜9と無視するデータを表す0が格納されており、この1〜9のならびでデータを取り出したい
時もあります。そこで、
var tes = from num in itemList
where int.Parse(num.oder) > 0 && int.Parse(num.oder) <= 9
select int.Parse(num.oder);
としてみたのですが、上手く値を取得できませんでした。
どうしたらoder順にデータを取り得だせるでしょうか。
御教示ください。
■No34028に追記(魔界の仮面弁士の記事) >> orderby int.Parse(num.oder) を追加したのですが、 > oder が競合しない "1"〜"9" ということなので、int.Parse も不要で > var q = from o in itemList where o.oder != "0" orderby o.oder select o; > かな。
おまけ。"10" 以降の値もあるなら、int.Parse 付きでこう書きます。
var r = from o in itemList let oder = int.Parse(o.oder) where oder != 0 orderby oder select o;
■No34028に返信(魔界の仮面弁士さんの記事) var tes = from o in itemList where o.oder != "" orderby o.oder select o; for (var w = 0; w < 9; w++) { itemList_o[w] = tes.ElementAt(w); } とすることでやりたいことができました。 ありがとうございました!(不要データは0が入っているというのは勘違いでnullだったのでコードも変更しています。)