7

「Take() が機能しないことに気付いた最初のレコードだけを取得したい。

だから私は別のリストを照会するリストを持っています

List<string> etchList = new List<string>();
etchList.Add("709");

Linqクエリは

var query = (from vio in AddPlas
            where etchList.Any(vioID => vio.Key.Formatted.Equals(vioID))
            select new
            {
                EtchVectors = vio.Shapes
            }).ToList().Take(1);

この "Take(1)" は、etchList に他のデータがある場合にのみ機能するため、探しているものではありません。私が得ている結果は次のようになります。

フォーマットされ
た「clinesegs」 1013.98 5142.96 「LYR3_SIG2」
「clinesegs」 1020.16 5168.33 「LYR3_SIG2」
「clinesegs」 967.03 5151.31 「LYR3_SIG2」
「clinesegs」 971.43 5174.01

リストの最初の "行のみを取得したい

"clinesegs" 1013.98 5142.96 "LYR3_SIG2"

編集:

このコードが存在します:

public class AddPla
{
public AddPla()
{
    Shapes = new List<Parse>();
}

public Parse Key { get; set; }
public Parse Pla { get; set; }
public Parse Angle { get; set; }
public Parse Default { get; set; }
public List<Parse> Shapes { get; set; }
public Parse DoubleBrace { get; set; }
public Parse Number1 { get; set; }
public Parse Number2 { get; set; }
  }

  public class Parse
  {

public string Formatted { get; set; }
public string Original { get; set; }

  }

次に、このリスト

  var AddPlas = new List<AddPla>();
4

3 に答える 3

12

ほど簡単ではないと思いますFirst()か?

クエリが結果を返さないことが予想される場合は、FirstOrDefault()

アップデート

あなたが求めているのが「Shapesそれぞれから最初のものを取得する」ことである場合は、最後ではなくステートメントにAddPla追加Firstしますselect

select new { EtchVectors = vio.Shapes.First() }
于 2013-05-08T22:35:15.500 に答える
5

FirstOrDefaultで試すことができます。

var query = (from vio in AddPlas
            where etchList.Any(vioID => vio.Key.Formatted.Equals(vioID))
            select new
            {
                EtchVectors = vio.Shapes
            }).FirstOrDefault();
于 2013-05-08T22:35:45.317 に答える