尝试用LINQy方法来做到这一点,但没有任何东西可以来找我。
我有一个List<>对象包含一个以逗号分隔的alpha代码列表的属性:
lst[0].codes = "AA,BB,DD"
lst[1].codes = "AA,DD,EE"
lst[2].codes = "GG,JJ"
我喜欢这些代码的列表,希望以字符串列表的形式出现:
result = AA,BB,DD,EE,GG,JJ
感谢任何指示。
答案 0 :(得分:21)
使用SelectMany
获取所有拆分代码,并使用Distinct
不重复这些值。
尝试这样的事情:
var result = lst.SelectMany(x => x.codes.Split(",")).Distinct().ToList();
答案 1 :(得分:6)
您需要使用Split
将每个字符串拆分为多个字符串。然后,您需要使用SelectMany
将多个序列连接成一个序列,然后您需要使用Distinct
来删除重复项。
var result =
lst
.SelectMany(x => x.codes.Split(','))
.Distinct()
.ToList();
答案 2 :(得分:0)
如果您需要public function actionEdit($id)
{
$sectionModel = new Section();
if ($menuModel = Menu::findOne($id)) {
if ($sectionModel->load(Yii::$app->request->post(), 'Menu')) {
$menuModel->name = $sectionModel->name;
$menuModel->save();
return $this->redirect(['menu/index']);
}
return $this->render('edit', [
'model' => $menuModel
]);
}
}
:
string
答案 3 :(得分:-1)
试试这个:
List<string> list = new List<string>();
char[] sep = new char[1];
sep[0] = ',';
foreach (string item in lst)
{
list.AddRange(item.Split(sep));
}
list = list.Distinct().ToList();