這是代碼:
public class LinqDatabase : MonoBehaviour
{
[Serializable]
public class Supplier
{
public string Name;
public string District;
public int Age;
}
[Serializable]
public class Buyer
{
public string Name;
public string District;
public int Age;
}
[SerializeField] private List<Buyer> _buyers = new List<Buyer>();
[SerializeField] private List<Supplier> _supplier = new List<Supplier>();
void Start ( )
{
var leftOuterJJoin = from s in _supplier
join b in _buyers on s.District equals b.District into NewbuyersGroup
from BG in NewbuyersGroup.DefaultIfEmpty()
select new
{
s.Name, s.District,
BuyersName = BG?.Name ?? "No one here"
};
foreach ( var VARIABLE in leftOuterJJoin )
{
Debug.Log ( $"{VARIABLE.Name} {VARIABLE.District}" );
Debug.Log ( VARIABLE.BuyersName );
}
}
}



我的問題是,如果您比較串列,它應該也不會在此處列印出 S5w 和 TTW mkm 的任何人,因為該地區沒有匹配項。但是,DefaultIfEmpty 似乎并不適用于整個串列,而僅適用于第一個不匹配的物件 (S4ko)。我如何將這里的任何人都申請到所有不匹配的地區?
uj5u.com熱心網友回復:
它作業正常。
Collapse您已在Unity 控制臺中啟用該選項,這意味著如果多次列印完全相同的訊息,它只會顯示一次,但帶有一個小計數器。
您可以在右邊框上看到訊息
No one here
已登錄3次。
=> 禁用Collapse它應該可以正常作業。
見小提琴
為了避免這種混亂,我會制作一個包含所有相關資訊的日志。例如與
Debug.Log($"{VARIABLE.Name} {VARIABLE.District} -> {VARIABLE.BuyersName}");
這從一開始就不會發生;)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/534997.html
上一篇:禁用除一個以外的所有游戲物件
