「Unity/Csharp/linq」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→順序) |
|||
行24: | 行24: | ||
==順序== | ==順序== | ||
<pre> | <pre> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
// 年下順 | // 年下順 | ||
IOrderedEnumerable<User> orderedUsers = users.OrderBy( value => value.age ); | IOrderedEnumerable<User> orderedUsers = users.OrderBy( value => value.age ); | ||
行48: | 行34: | ||
参考:https://doruby.jp/users/ino/entries/%E3%80%90C--Unity%E3%80%91LINQ%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%9F%E3%82%89%E3%81%A8%E3%81%A6%E3%82%82%E3%82%B9%E3%83%9E%E3%83%BC%E3%83%88%E3%81%A0%E3%81%A3%E3%81%9F | 参考:https://doruby.jp/users/ino/entries/%E3%80%90C--Unity%E3%80%91LINQ%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%9F%E3%82%89%E3%81%A8%E3%81%A6%E3%82%82%E3%82%B9%E3%83%9E%E3%83%BC%E3%83%88%E3%81%A0%E3%81%A3%E3%81%9F | ||
− | |||
==取得件数を絞る== | ==取得件数を絞る== |
2019年3月14日 (木) 14:53時点における版
目次
準備
using System.Linq;
条件一行だけ(fetchRow)
public ScoreDay FindRowByYyyymmdd(string yyyymmdd) { List<ScoreDay> scores = FindAll(); return scores.FirstOrDefault(score => score.yyyymmdd == yyyymmdd); }
条件複数行(fetchAll)
public IEnumerable<ScoreDay> FindAllByYyyymmdd(string yyyymmdd) { List<ScoreDay> scores = FindAll(); return scores.Where(score => score.yyyymmdd == yyyymmdd); }
順序
// 年下順 IOrderedEnumerable<User> orderedUsers = users.OrderBy( value => value.age ); // 年上順 IOrderedEnumerable<User> orderedDescUsers = users.OrderByDescending( value => value.age ); foreach (User user in orderedUsers) { Debug.Log(user.name); }
取得件数を絞る
List<Score> scores = new List<Score>(); IEnumerable<Score> tmpScores = scores.Skip(0).Take(100);
指定条件だけに絞る
List<ScoreDay> scores = FindAll(); IEnumerable<Score> tmpScores = scores.Where(score => score.sec > 6); List<Score> scores = tmpScores.ToList();
IEnumerableをListへ変換
IEnumerable<Score> tmpScores = // 略・・・ List<Score> scores = tmpScores.ToList());
数値の合計
List<Score> scores = FindAll(); return scores.Sum(record => record.missCnt);
like検索
List<Score> scores = FindAll(); IEnumerable<Score> scores = scores.Where(record => record.yyyymmdd.Contains("/201903/"));
like前方一致
List<Score> scores = FindAll(); IEnumerable<Score> scores = scores.Where(record => record.yyyymmdd.StartsWith("201903"));
like後方一致
List<Score> scores = FindAll(); IEnumerable<Score> scores = scores.Where(record => record.yyyymmdd.EndsWith("0316"));