List<string> OngoingClass = new List<String>()
{
"FLEXI","RETAIL","LITE","RTSPL"
};
List<string> ReturnClass = new List<String>()
{
"FLEXI","LITE","RETAIL","RTSPL"
};
需要將這兩個串列與某些條件結合起來。1. OngoingClass FLEXI 應與 ReturnClass FLEXI 結合 - 不應與其余類結合。2. LITE 票價應與 LITE 票價相結合。3.其余的類可以相互結合。
例如結果想
{ "FLEXI" , "FLEXI" }
{ "LITE","LITE"}
{ "RETAIL","RETAIL"}
{ "RETAIL","RTSPL"}
{ "RTSPL","RETAIL"}
{ "RTSPL","RETAIL"}
uj5u.com熱心網友回復:
正如我在評論中所說,可能有更好的演算法來獲得一些組合,但是對于這個小資料集,這將起到作用
List<Tuple<string, string>> resultSequence = new List<Tuple<string, string>>();
OngoingClass.ForEach( item =>
{
ReturnClass.ForEach( item2 =>
{
if ((item == item2 && item2 == "FLEXI") || (item == item2 && item2 == "LITE") || ( item != "FLEXI" && item != "LITE" && item2 != "FLEXI" && item2 != "LITE"))
{
resultSequence.Add( new Tuple<string, string> ( item, item2 ));
}
});
});
顯示結果
foreach (var item in resultSequence)
{
Console.WriteLine(item);
}
uj5u.com熱心網友回復:
因此,您希望將 FLEXI 和 LITE 合并到一個串列中,并將所有其他串列合并到一個笛卡爾積中。最后的預期結果似乎是錯誤的,它不應該再次是“RTSPL”,“RETAIL”,而是“RTSPL”,“RTSPL”:
string[] mergeClasses = { "FLEXI", "LITE" };
var resultLists = new List<List<string>>();
foreach (string mergeClass in mergeClasses)
{
var mergeList = new List<string>();
if (OngoingClass.Contains(mergeClass))
{
mergeList.Add(mergeClass);
}
if (ReturnClass.Contains(mergeClass))
{
mergeList.Add(mergeClass);
}
if (mergeList.Any())
{
resultLists.Add(mergeList);
}
}
var other = from o in OngoingClass.Except(mergeClasses)
from r in ReturnClass.Except(mergeClasses)
select (o, r);
foreach (var pair in other)
{
resultLists.Add(new List<string> { pair.o, pair.r });
}
uj5u.com熱心網友回復:
這對我有用:
var OngoingClass = new List<String>() { "FLEXI", "RETAIL", "LITE", "RTSPL" };
var ReturnClass = new List<String>() { "FLEXI", "LITE", "RETAIL", "RTSPL" };
var SpecialClass = new List<String>() { "FLEXI", "LITE" };
var query =
from o in OngoingClass
from r in ReturnClass
where (SpecialClass.Contains(o) && r == o)
|| (!SpecialClass.Contains(o) && !SpecialClass.Contains(r))
select (o, r);
這允許任何值是“特殊的”并且只與它們自己配對。
我得到這個結果:

uj5u.com熱心網友回復:
嘗試以下:
List<string> OngoingClass = new List<String>() { "FLEXI","LITE","RETAIL","RTSPL"};
List<string> ReturnClass = new List<String>() { "FLEXI","LITE","RETAIL","RTSPL"}
var results = OngoingClass.Select((x,i) => new object[] { x, ReturnClass[i]}).ToArray();
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/417523.html
標籤:
上一篇:按月和年計算活躍串列
