var ListA = new List();
ListA.Add(new Models.User { Id = "A1", Name = "A1", Age = 1 });
ListA.Add(new Models.User { Id = "A2", Name = "A2", Age = 2 });
ListA.Add(new Models.User { Id = "A3", Name = "A3", Age = 3 });
ListA.Add(new Models.User { Id = "A4", Name = "A4", Age = 4 });
ListA.Add(new Models.User { Id = "A5", Name = "A5", Age = 5 });
var ListB = new List();
ListB.Add(new Models.User { Id = "B1", Name = "B1", FriendId = "A1" });
ListB.Add(new Models.User { Id = "B2", Name = "B2", FriendId = "A1" });
ListB.Add(new Models.User { Id = "B3", Name = "B3", FriendId = "A1" });
ListB.Add(new Models.User { Id = "B4", Name = "B4", FriendId = "A4" });
ListB.Add(new Models.User { Id = "B5", Name = "B5", FriendId = "A5" });
//篩選出 ListA 的 Id 有 交集到 ListB 的 FriendId
var intersectAFriends = ListA.IntersectBy(ListB.Select(e => e.FriendId), x => x.Id);
Result = JsonConvert.SerializeObject(intersectAFriends,
Newtonsoft.Json.Formatting.None,
new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore,
DefaultValueHandling = DefaultValueHandling.Ignore,
});
//Result
//[{"Id":"A1","Name":"A1","Age":1},{"Id":"A4","Name":"A4","Age":4},{"Id":"A5","Name":"A5","Age":5}]
var ListA = new List();
ListA.Add(new Models.User { Id = "A1", Name = "A1", Age = 1 });
ListA.Add(new Models.User { Id = "A2", Name = "A2", Age = 2 });
ListA.Add(new Models.User { Id = "A3", Name = "A3", Age = 3 });
ListA.Add(new Models.User { Id = "A4", Name = "A4", Age = 4 });
ListA.Add(new Models.User { Id = "A5", Name = "A5", Age = 5 });
var ListB = new List();
ListB.Add(new Models.User { Id = "B1", Name = "B1", FriendId = "A1" });
ListB.Add(new Models.User { Id = "B2", Name = "B2", FriendId = "A1" });
ListB.Add(new Models.User { Id = "B3", Name = "B3", FriendId = "A1" });
ListB.Add(new Models.User { Id = "B4", Name = "B4", FriendId = "A4" });
ListB.Add(new Models.User { Id = "B5", Name = "B5", FriendId = "A5" });
//篩選出 ListA 的 Id 有 沒有交集到 ListB 的 FriendId
var exceptAFriends = ListA.ExceptBy(ListB.Select(e => e.FriendId), x => x.Id);
Result = JsonConvert.SerializeObject(exceptAFriends,
Newtonsoft.Json.Formatting.None,
new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore,
DefaultValueHandling = DefaultValueHandling.Ignore,
});
//Result
//[{"Id":"A2","Name":"A2","Age":2},{"Id":"A3","Name":"A3","Age":3}]
筆記一下,雖然簡單但是我真的常常用一些奇技淫巧人家明明就準備得很好
--
The bug existed in all possible states.
Until I ran the code.