是否可以在一行代码中动态添加列表<字符串>值
本文关键字:添加 动态 列表 字符串 代码 一行 是否 | 更新日期: 2023-09-27 18:36:51
我有一个项目,我从formview字段中获取字符串(40+字段)的值。 我想减少代码中的行数,并希望将添加列表值合并到我从 formview 收集的每个字符串值的单行代码中。
我的代码截图是:
...
List<string> mylist = new List<string>();
string str1 = e.NewValues["value1"].ToString();
myList.Add(str1);
string str2 = e.NewValues["value2"].ToString();
myList.Add(str2);
string str3 = e.NewValues["value3"].ToString();
myList.Add(str3);
string str4 = e.NewValues["value4"].ToString();
myList.Add(str4);
...
是否可以在一行代码中添加这些字符串,如下所示:
myList.Add(string str1 = e.NewValues["value1"].ToString());
或
myList.Add((string) something... not getting the correct format.
我已经对sql参数做了类似的事情即——
cmd.Parameters.Add(new OleDbParameter("ENTRY", OleDbType.VarChar)
{
Value = ENTRY,
Direction = ParameterDirection.Input
});
--但是我已经搜索了许多尝试这样做的方法,但没有任何结果。我不确定我只是没有正确搜索它还是不可能?
List<string> mylist = new List<string>
{
e.NewValues["value1"].ToString(),
e.NewValues["value2"].ToString()
//etc...
};
使用对象初始值设定项将允许您在初始化对象时构建对象。
例如,如果您有一个类:
class Test
{
string test1 { get; set; }
int test2 { get; set; }
}
您可以像以下方式对其进行初始化:
Test tester = new Test{ test1 = "some string", test2 = 5 };
使用 Linq 怎么样?
像这样:
List<string> mylist = new List<string>();
myList.AddRange(e.NewValues.ToList().Select(s => s.ToString());
或
e.NewValues.ToList().ForEach(v =>
{
//can add additional manipulation or If clause here
//if you have some exclusions
myList.Add(v.ToString())
});
试试这个:
myList.Add(e.NewValues["value1"].ToString());
你可以使用
myList.AddRange(
new[]{
e.NewValues["value1"].ToString(),
e.NewValues["value2"].ToString()
});
或使用内联分配:
List<string> mylist = new List<string>
{
e.NewValues["value1"].ToString(),
e.NewValues["value2"].ToString()
};
NewValues是一个字典,所以像这样可以在一行中工作:
List<string> mylist = e.NewValues.Values.ToList().ConvertAll(x => x.ToString());
更新:
NewValues 返回的是一个 orderedDictionary,因此在您的 eventHandler 中放置以下代码:
List<string> mylist = new List<string>();
foreach (DictionaryEntry item in e.NewValues)
{
mylist.Add(item.Value.ToString());
}
或者,如果 MyList 是一个类成员变量,那么只有 foreach 循环将填充列表。
<form id="form1" runat="server">
<div>
<table>
<tr> <td> <asp:TextBox ID="txxt" runat="server" /> </td> </tr>
<tr> <td> <asp:Button ID="btn" Text="test" runat="server" style="width: 36px" /> </td> </tr>
<tr> <td> <asp:HiddenField ID="hdntest" runat="server" /> </td> </tr>
</table>
</div>
</form>
.
Protected Sub btn_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn.Click
Dim s As String = ""
s = txxt.Text
s = s + ","
hdntest.Value = hdntest.Value + s
txxt.Text = hdntest.Value
End Sub