如何处理MVC中的var clickedIndex = 0
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
self.clickedIndex = indexPath.row
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "segue" {
let runeArray = runes[clickedIndex]// variable runeArray is the child array from runes
let destinationVC = segue.destination as! SecondViewController
destinationVC.selectedRune = runeArray[0]// Now choose an actual Rune object from the array by index
}
}
循环。在波纹管控制器中,我调用了一个名为foreach
的方法,该方法向其参数输入发送电子邮件,但在我的控制器上,我无法正确使用SendSimpleMessage()
。
foreach
答案 0 :(得分:1)
您的代码错误,foreach
循环应该看起来像
foreach (var currentEmail in Emails) { //where var can be your Class maybe Email
SendSimpleMessage(currentEmail);
}
一般来说,foreach看起来像:
foreach(T objectName in YourCollection){
//T is your class
//objectName is the way you access the object within your loop
//in references the list
//YourCollection is IEnumerable<T>
}
答案 1 :(得分:0)
ForEach声明的定义
for each语句用于遍历集合。您可以修改集合中的元素,但不能添加或删除元素。将为数组或集合中的每个元素执行语句。对集合中的所有元素完成迭代后,控制权将转移到每个块后面的语句
<强>语法:强>
for each (type identifier in expression)
{
statements
}
参数类型
标识符的类型。
<强>标识符强>
表示集合元素的迭代变量。当标识符是跟踪参考运算符时,您可以修改该元素。
<强>表达强>
数组表达式或集合。 collection元素必须是编译器可以将其转换为标识符类型。
<强>语句强>
要执行的一个或多个陈述。
简单示例:
string[] countries = { "india", "US", "UK" };
foreach (string value in countries )
{
Console.WriteLine(value);
}
以同样的方式,您的代码会发生如下变化:
[HttpPost]
public ActionResult EmailCampaignProcess(FormCollection collection)
{
//var userType = Request["userType"];
//var emailContent = Request["emailContent"];
//SendSimpleMessage();
//ViewBag.Message = "Hello " + Request["userType"];
var Emails = db.Users.Where(d => d.Subscriptions.Any(x => x.Status == true)).Select(u => u.Email).ToArray();
foreach (string SingleEmail in Emails) {
SendSimpleMessage(SingleEmail);
}
// Or if you are not sure about the outcome type you can use the var keyword like below
foreach (var SingleEmail in Emails) {
SendSimpleMessage(SingleEmail);
}
}
希望以上信息有用