将元组数组和对象列表定义为:
Tuple<string, string, string>[] phone_type
List<Tele> telecomm
public class Tele
{ public string number;
public string displayNumber;
public string type;
}
我想将List<Tele>
中存在的值分配给元组数组。以下代码无效。
obj.phone_type[0] = (Tuple<string,string,string>) obj1.telecommunication[0];
错误说施法是多余的,无法将List
转换为Tuple<string,string,string>
是否有一种干净的方法可以将List的特定/所有元素分配给元组数组。
答案 0 :(得分:6)
拥有:
public class Tele
{
public string number;
public string displayNumber;
public string type;
}
您可以尝试:
List<Tele> telecomm = //a list of Teles
Tuple<string, string, string>[] phone_type =
telecomm.Select(i => new Tuple<string, string, string>(i.number, i.displayNumber, i.type))
.ToArray();
编辑:您也可以查看@Kyle评论以获得改进。
答案 1 :(得分:0)
您始终可以向Tele添加方法。你必须写它,但只能写一次。
public Tuple<string, string, string> ToTuple() {
return new Tuple<string, string, string>(number, displayNumber, type);
}
然后填充数组,就像Hossein的回答一样:
telecom.Select(t => t.ToTuple()).ToArray();
答案 2 :(得分:0)
由于C#现在支持var phone_type = telecom.Select(t => (t.number, t.displayNumber, t.type)).ToArray();
,因此您也可以使用:
import pandas as pd
for layer in model.layers:
if layer.name in ['fc1', 'fc2', 'logit']:
continue
layer.trainable = False
df = pd.DataFrame(([layer.name, layer.trainable] for layer in model.layers), columns=['layer', 'trainable'])
df.style.applymap(lambda trainable: f'background-color: {"yellow" if trainable else "red"}', subset=['trainable'])