최근 12 개의 고유 한 레코드가 필요합니다. 샘플 데이터linq 쿼리에서 고유 한 값을 얻는 방법
JSON 데이터
[{ "타임 스탬프": "2017-03-20T05 : 27 : 01.688Z", "dataFrame": "ACnrAAAAAAAAAAA =" "FCNT"165 "포트" : 3, "rssi": - 85, "snr": 7, "sf_used": 12, "id": 1489987621688, "decrypted": true}, { "timestamp": "2017-03-20T05 : 27 : 41.675 16, "port": 3, "rssi": - 85, "snr": 9, "sf_used": 12, "id": 1489987661675, "데이터 프레임" 복호화 된 ": true}, ..
AGMDAQo1/wSsCPU=
AGMEAQo1/wSsCPU=
AGMFAQo1/wSsCPU=
AGMGAQo1/wSsCPU=
AGMHAQo1/wSsCPU=
ASHAAQo2FgSsBxc=
마지막으로 12 문자가 동일하므로 하나만 입력해야합니다.
AGMDAQo1/wSsCPU=,
AGMEAQo1/wSsCPU=,
AGMFAQo1/wSsCPU=
원하는 출력
AGMDAQo1/wSsCPU=
ASHAAQo2FgSsBxc=
코드
var Pirs = Newtonsoft.Json.JsonConvert.DeserializeObject<List<AssetDetail>>(responseString);
var items = Pirs.Where(a => !a.dataFrame.EndsWith("AAAAAAAAAAA="))
.GroupBy(a => a.dataFrame)
.Select(g => g.First())
.OrderByDescending(a => a.timestamp)
.Take(10);
모델
public class AssetDetail
{
public long id { get; set; }
public DateTime timestamp { get; set; }
public string dataFrame { get; set; }
public long fcnt { get; set; }
public int port { get; set; }
public int rssi { get; set; }
public string snr { get; set; }
public string sf_used { get; set; }
public bool decrypted { get; set; }
}
무엇을 작동하지? – CodingYoshi
데이터 프레임에 고유 한 값이 필요합니다. 마지막 12 문자는 고유해야합니다. 하나의 데이터 프레임에서 나는 2 개의 값이 유일해야한다는 점에서 3 개의 값을가집니다. 이 2 개의 값은 마지막 12 자입니다. –
나는 그 부분을 얻지 만 귀하의 질문에 무엇이 잘못되었는지 질문하고 있습니다 : 당신이 싫어하는 것은 무엇입니까? – CodingYoshi