와 테이블에 위치를 얻을 : ID 이름나는 열이있는 테이블 플레이어가 LINQ
LINQ를 사용하여 포인트 주문 플레이어의 위치를 얻을 수있는 가장 효율적인 방법은 무엇 포인트?
와 테이블에 위치를 얻을 : ID 이름나는 열이있는 테이블 플레이어가 LINQ
LINQ를 사용하여 포인트 주문 플레이어의 위치를 얻을 수있는 가장 효율적인 방법은 무엇 포인트?
모든 솔루션은 모든 요소를 통해 적어도 하나의 반복을 필요로하지만, 다음은 충분합니다 :
var ordered = players.OrderByDescending(p => p.Points).ToList();
이없이 순서를 유지하기 위해 목록에 결과를 저장 한 후 한 패스의 요소를 주문하고합니다
int position = ordered.IndexOf(player);
당신의 demande는 하나의 LINQ 쿼리하지만이 그것을 할 수있는 방법입니다 : : 다시 '위해'필요
int pos = 0;
foreach(var item in Players.OrderByDescending(u =>u.Points).ToList())
{
pos++;
if (item.Name == yourPlayerName)
break;
}
return pos;
위치를 얻는 또 다른 옵션 (Akrem과 비슷하지만 수동으로 컬렉션을 반복하지 않음).
[TestMethod]
public void TestMethod()
{
var table = new[]
{
new{ Id = 1, Name = "Paul", Points = 10},
new{ Id = 2, Name = "Ringo", Points = 2},
new{ Id = 3, Name = "George", Points = 30},
new{ Id = 4, Name = "John", Points = 5}
};
int position = table.OrderByDescending(x => x.Points).TakeWhile(x => x.Name != "Paul").Count() + 1;
Assert.AreEqual(2, position);
}
포인트로 주문한 결과 집합을 얻을 수 있습니까? 그 후에 ID를 알고있는 레코드의 서수를받는 방법을 묻고 있습니까? –
테이블이있는 위치의 목록에서의 위치를 의미합니까? 아니면 ID = 위치를 의미합니까? –
db.Players.OrderByDescending (u => u.Points) .ToList(); 여기서 db는 목록에서 linq 데이터 컨텍스트 – Arion