天道酬勤,学无止境

Accessing object parameters added in an array

I want to know how to access ListArray 1 and print one of the parameters of the object added to that ListArray

Main Program:

namespace ConsoleApp1 {


class Program
 {
     static void Main(string[] args)
     {
         UserDetails ud = new UserDetails();
         List<TaskDetails> taskDetails = new List<TaskDetails>();

         Console.Write("Please enter User ID: ");
         string i = Console.ReadLine();

         Console.Write("Please enter username: ");
         string s = Console.ReadLine();

         ud.SetDetails(i, s);

         int cnt = int.Parse(Console.ReadLine());

         for (int x=1; x <= cnt; x++)
         {
             Console.Write("Please enter title for Task: " + x + " ");
             string title = Console.ReadLine();

             TaskDetails td = new TaskDetails();
             td.SetTask(i, title);
             taskDetails.Add(td);
         }
         PrintDetails pd = new PrintDetails();
     }
 }    
 }

Task Details

namespace ConsoleApp1
{
    class TaskDetails
    {
        private string UserID { set; get; }
        private string TaskTitle { set; get; }      
        private List<TaskDetails> TaskList = new List<TaskDetails>();


        public TaskDetails() { }

        public List<TaskDetails> GetTaskList
        {   
            get { return TaskList; }
        }

        public void SetTask(string userID, string taskTitle)
        {
            this.UserID = userID;
            this.TaskTitle = taskTitle;
        }
    }
}

this is class I am using to access the ArrayList in class TaskDetails, I want to be able to access the object in the array by index and to one of its parameters

 namespace ConsoleApp1
{
    class PrintDetails
    {
        public void print(int i)
        {
            TaskDetails qw = new TaskDetails();

            List<TaskDetails> MyList1 = qw.GetTaskList;

            Console.WriteLine(qw.GetTaskList);
        }
    }
}
标签

评论

So I think the problem you're facing is that when you create a new TaskDetails, you initialise a new version of TaskDetails, which starts off empty. If you feel that a separate class is necessary for the PrintDetails you could have something like the following:

namespace ConsoleApp1
{
    class PrintDetails
    {
        public void Print(List<TaskDetails> taskDetails, int i)
        {
            var taskDetail = taskDetails[i];

            Console.WriteLine(string.Format(
                "UserID: {0}, TaskTitle: {1}",
                taskDetail.UserID,
                taskDetail.TaskTitle);
        }
    }
}

Then in your main function, call it as follows:

PrintDetails pd = new PrintDetails();
pd.Print(taskDetails, i);

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • Accessing contents of an object returned by DLL using ctypes in Python
    The dll returns an object on calling a function using ctypes in python. It returns the following - say it is named as ReturnO; print(ReturnO) gives the following: (63484, <DLLname.ClassName object at 0x09D35670>) The object should return the parameters; their names are: Paramater_1, Parameter_2 and so on. My question is, how do i access the values in Parameter_1, Parameter_2 etc. if i do a print as follows print(ClassName.Parameter_1) print(ClassName.Parameter_2) i get the following Field type=c_float_Array_5, ofs=49483, size=20 Field type=c_float_Array_5, ofs=49503, size=20 Now, how do I get
  • HTML(11-js复合类型)
    JavaScript复合类型 复合类型对象数组什么是数组数组特点数组的基本操作 数组常见方法 复合类型 复合类型是指由多个基本数据类型或者复合类型构成的数据体。 js中的复合类型有对象Object、数组Array和Function函数三大类 对象 对象是一系列命名变量和函数的集合,对象中的命名变量称为属性, 对象中的函数称为方法。对象中访问属性和函数的方法都是通过. 点 运算符实现的。例如获取浏览器的版本navigator.appVersion js是基于对象的脚本语言,所以提供了大量的内置对象供开发者使用 - Array数组类 - Date日期类 - Math数学类 - Object对象类 - String字符串类 … … 还有一组的DOM对象,例如document.write();一组BOM对象,例如window.alert() 数组 什么是数组 数组就是一组数据的集合,其表现形式就是内存中的一段连续的内存地址数组名称其实就是连续内存地址的首地址 数组特点 数组定义时无需指定数据类型,数组定义时可以无需指定数组长度数组可以存储任何数据类型的数据(比如一个元素保存整型,一个元素保存字符串型,这个在JS中是可以的) 数组的基本操作 js为数组提供了一个length属性可以获取数组的长度,实际上js的数组长度可以任意变化 数组长度可变,索引值从0开始
  • PHP 会话混淆(PHP Session Confusion)
    问题 好吧,我一头雾水。 我有一个存储在会话中的对象。 我可以向这个对象添加项目。 到目前为止很简单。 我像这样初始化对象: $template = new Template($mysqli); $_SESSION['template'] = serialize($template); 现在,这应该创建一个全新的对象并将其分配给会话。 然后我有一些通过 AJAX 请求添加项目的代码。 该代码如下: $template = unserialize($_SESSION['template']); $prodid = $_GET['product_id']; $template->addItem($prodid); echo var_dump($template->getItems()); $_SESSION['template'] = serialize($template); 同样,应该很简单。 现在这是问题所在,第一段代码没有重置$_SESSION['template']而它应该重置,所以我得到了到目前为止我添加的所有项目,重新加载页面并不能解决它。 我找到了导致恶作剧的文件,但我不知道我能做些什么。 它是一个包含,它是网站不同部分运行所必需的。 我正在向网站添加功能,如果我删除了功能,我认为所有者不会高兴。 这是文件: <?php include_once( 'DBE.class
  • JavaScript中的复合类型
    复合类型由多个基本数据类型(也可以包括复合类型)组成的数据体,JavaScript中的复合类型大致有如下3种, Object:对象Array:数组Function:函数 Object对象 对象是一系列明明变量、函数的集合。其中命名类型的变量既可以是基本数据类型,也可以是复合类型,对象中的命名变量称为属性,而对象中的函数称为方法,对象访问属性和函数的方法都是通过“.”实现的。 除了Object之外,JavaScript还提供了如下常用的内置类 Array:数组类Date:日期类Error:错误类Function:函数类Math:数学类,该对象包含了相当多的执行数学运算的方法Number:数值类Object:对象类String:字符类 数组 数组是一系列的变量,与其它强类型语言不同的是,JavaScript中数组元素的类型可以不相同,定义数组有三种语法 var a = [3,5,23];//定义是就已初始化 var b = [];//声明一个空数组 var c = new Array();//声明一个空数组 JavaScript中的数组几个特征: 长度可变,数组长度等于其元素最大索引值+1同一个数组中的元素类型可以互不相同访问数组元素是不会产生数组越界,访问并未复制的数组元素时,该元素的值为undefined 除此之外,JavaScript数组可以作为长度可变的线性表使用
  • 访问 PHP 数组对象受保护的属性(Accessing PHP Array Object Protected Property)
    问题 我正在尝试在 Symfony2 中上传多个文件。 我正在尝试访问以下请求对象,但无法获取参数属性。 如何一一到达文件上传。 我得到的错误: 致命错误:无法访问第 66 行 /var/www/File/src/Webmuch/FileBundle/Entity/File.php 中的受保护属性 Symfony\Component\HttpFoundation\FileBag::$parameters 请求对象: Symfony\Component\HttpFoundation\FileBag Object ( [parameters:protected] => Array ( [file] => Array ( [0] => Symfony\Component\HttpFoundation\File\UploadedFile Object ( [test:Symfony\Component\HttpFoundation\File\UploadedFile:private] => [originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => FLB1.jpg [mimeType:Symfony\Component\HttpFoundation\File\UploadedFile
  • PHP魔术常量和魔术方法详解
    一、魔术常量 __LINE__ 文件中的当前行号。 __FILE__ 文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。 自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径), 而在此之前的版本有时会包含一个相对路径。 __DIR__ 文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。 它等价于 dirname(__FILE__)。除非是根目录,否则目录中名不包括末尾的斜杠。 __FUNCTION__ 函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。 在 PHP 4 中该值总是小写字母的。 __CLASS__ 类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。 在 PHP 4 中该值总是小写字母的。类名包括其被声明的作用区域(例如 Foo\Bar)。 注意自 PHP 5.4 起 __CLASS__ 对 trait 也起作用。 当用在 trait 方法中时,__CLASS__ 是调用 trait 方法的类的名字。 __TRAIT__ Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4 起此常量返回 trait 被定义时的名字(区分大小写)。 Trait 名包括其被声明的作用区域
  • JS复合类型
    Javascript中的复合类型大致有三种: Object:对象 Array:数组 Function:函数 一、对象 对象是一系列命名变量、函数的集合。 Javascript还提供了许多内置类: Array:数组类 Function:函数类 Date:日期类 Error:错误类 Math:数学类 Number:数值类 Object:对象类 String:字符串类 二、数组 数组是一系列的变量。 定义数组的三个方法: var a = [3,5,23]; var b = []; var c = new Array(); 在JavaScript中,同一数组中的元素类型可以互不相同。JavaScript为数组提供了一个length属性,该属性可得到数组的长度,JavaScript的数组长度可以随意变化,它总等于所有元素索引最大值+1。(JavaScript的数组索引从0开始) JavaScript作为动态、弱类型语言,有三个特征: 1、JavaScript的数组长度可变,数组长度总等于所有元素索引最大值+1。 2、同一数组的元素类型可以互不相同。 3、访问数组元素时不会产生数组越界,访问并未赋值的数组元素时,该数组的值为undefined。 JavaScript数组作为栈使用的两个方法如下: push(ele):元素入栈,返回入栈后数组的长度。 pop():元素出栈,返回出栈的数组元素。
  • 访问批处理文件中未知数量的命令(参数)(Accessing unknown number of commands (parameters) in batch file)
    问题 这个有点难解释,但我会尽力的。 我通过字符串数组将目录列表传递到批处理文件中,该数组是在 Java 中创建的,然后使用 Runtime.getRuntime().exec(commands) 传递到 .bat 中。 我遇到的问题是关于访问命令数组,其大小可能因执行而异。 例如,在一次运行中,“命令”可能包含以下内容: {"cmd.exe", "/C", "Start", "program.bat", "stringA", "stringB", "stringC"} 前四个元素用于调用批处理文件,因此只有字符串 A、B 和 C 作为参数传递到批处理文件 (program.bat) 中。 但是,在下次运行时,“命令”可能如下所示: {"cmd.exe", "/C", "Start", "program.bat", "stringA", "stringB", "stringC", stringD, stringE} 如您所见,还有两个字符串添加到参数列表中。 我的问题是:在我的批处理文件中,我有这个: ::Get stringA (param 1) set stringA=%1 ::Get stringB (param 2) set stringB=%2 ::Get stringC (param 3) set stringC=%3 这需要三个字符串参数(来自第一个“命令”数组
  • 使用枚举访问 xaml 中的数组(Accessing an array in xaml with enums)
    问题 我希望能够使用枚举从 XAML 中的 ObservableCollection 访问项目。 我可以绑定到 ObservableCollection 并通过以下方式指定 XAML 中的哪个项目: <Window x:Class="ArrayPropertyBinding.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:ArrayPropertyBinding" Title="MainWindow" Height="350" Width="525"> <Window.DataContext> <local:MyViewModel /> </Window.DataContext> <StackPanel> <CheckBox Content="First" IsChecked="{Binding FilterBy[0],Mode=TwoWay}"/> <CheckBox Content="Second" IsChecked="{Binding FilterBy[1],Mode=TwoWay}"/>
  • 面向对象程序设计之一
    面向对象程序设计之一 • 结构化程序设计方法• 面向对象程序设计方法• 面向对象程序设计中的封装• 面向对象程序的设计过程分析抽象组装 类与对象的语法细则字段成员的语法细则方法成员的语法细则类成员访问权限的语法细则定义对象访问对象引用数据类型基本数据类型(primitive data type):byte、short、int、long、float、double、char、boolean引用数据类型(reference data type):类类型、数组类型、接口类型、枚举类型等 三种不同的变量类与对象的编译原理类的构造方法静态字段的语法细则静态方法的语法细则静态成员的应用 数组(array)定义数组定义数组时的初始化数组的语法细则访问数组Java可变长参数语法二维数组对象数组 Java源程序文件的命名细则以包的形式管理Java类分包管理Java类使用不同包里的类导入类中的静态成员 访问权限类的访问权限类成员的访问权限JAR包仅打包一个类程序文件打包一个子目录 参考文献及教程链接: • 程序=数据 +算法 • 程序设计方法 – 结构化程序设计 – 面向对象程序设计 • C语言:结构化程序设计语言 • Java语言:是一种面向对象程序设计语言 • 结构化程序设计方法 – 函数是分解出的算法零件 – 结构体类型是分解出的数据零件 – 程序修改 struct Rectangle //
  • 动态访问.map数组函数中的对象属性[重复](Dynamically accessing object property in .map array function [duplicate])
    问题 这个问题在这里已经有了答案: 使用变量动态访问对象属性(17 个回答) 2年前关闭。 我想要可重用的函数,该函数根据作为参数传递给函数的属性映射对象数组。 这是我的代码: let arr = [ { country: 'poland', population: 380000 }, { country: 'bangladesh', population: 3492423 } ] function filterMyArr (myArr, condition) { return myArr.map(element => element.country) } console.log(filterMyArr(arr)) 当我更改代码并尝试传递条件时,执行它时不起作用。 我想调用一个带有第二个参数的函数,例如 filterMyArr(arr, country) 并获得类似的结果。 我希望它可以重复使用,这样我就可以将它用于人口或任何其他财产。 谢谢你。 回答1 您只需要使用括号表示法,如下所示: function filterMyArr (myArr, condition) { return myArr.map(element => element[condition]) } 您将condition作为string作为object中的属性名称传递的位置。 笔记: 但请注意
  • Dynamically accessing object property in .map array function [duplicate]
    This question already has answers here: Dynamically access object property using variable (17 answers) Closed 2 years ago. i want to have reusable function that maps an array of objects based on property passed as parameter to function. Here's my code: let arr = [ { country: 'poland', population: 380000 }, { country: 'bangladesh', population: 3492423 } ] function filterMyArr (myArr, condition) { return myArr.map(element => element.country) } console.log(filterMyArr(arr)) When i change code and try to pass condition, while executing it doesn't work. I want to call a function with second
  • 按索引访问 shell 脚本参数(Accessing shell script arguments by index)
    问题 我敢肯定,当您进入 shell 编程时,这很容易。 不幸的是,我不是,而且我过得很艰难...... 我需要验证传递给 shell 脚本的参数。 我还想存储在数组中传递的所有参数,因为我稍后需要进一步分离。 我有一个参数“-o”,后面必须跟 0 或 1。因此,我想检查以下参数是否有效。 这是我尝试过的: # Loop over all arguments for i in "$@" do # Check if there is a "-" as first character, # if so: it's a parameter str="$i" minus=${str:0:1} # Special case: -o is followed by 0 or 1 # this parameter needs to be added, too if [ "$str" == "-o" ] then newIdx=`echo $((i+1))` # <-- problem here: how can I access the script param by a generated index? par="$($newIdx)" if [[ "$par" != "0" || "$par" != "1" ]] then echo "script error: The -o
  • Vue3.0面试题
    1. Vue 3.0 性能提升主要是通过哪几方面体现的? 1.响应式系统提升 vue2在初始化的时候,对data中的每个属性使用definepropery调用getter和setter使之变为响应式对象。如果属性值为对象,还会递归调用defineproperty使之变为响应式对象。 vue3使用proxy对象重写响应式。proxy的性能本来比defineproperty好,proxy可以拦截属性的访问、赋值、删除等操作,不需要初始化的时候遍历所有属性,另外有多层属性嵌套的话,只有访问某个属性的时候,才会递归处理下一级的属性。 优势: 可以监听动态新增的属性; 可以监听删除的属性 ; 可以监听数组的索引和 length 属性; 2.编译优化 优化编译和重写虚拟dom,让首次渲染和更新dom性能有更大的提升 vue2 通过标记静态根节点,优化 diff 算法 vue3 标记和提升所有静态根节点,diff 的时候只比较动态节点内容 Fragments, 模板里面不用创建唯一根节点,可以直接放同级标签和文本内容 静态提升 patch flag, 跳过静态节点,直接对比动态节点,缓存事件处理函数 3.源码体积的优化 vue3移除了一些不常用的api,例如:inline-template、filter等 使用tree-shaking 2. Composition Api 与 Vue 2
  • vue3.0 面试题总结
    一、Vue 3.0 性能提升主要是通过哪几方面体现的? 1. 响应式系统提升 vue2在初始化的时候,对data中的每个属性使用definepropery调用getter和setter使之变为响应式对象。如果属性值为对象,还会递归调用defineproperty使之变为响应式对象。vue3使用proxy对象重写响应式。proxy的性能本来比defineproperty好,proxy可以拦截属性的访问、赋值、删除等操作,不需要初始化的时候遍历所有属性,另外有多层属性嵌套的话,只有访问某个属性的时候,才会递归处理下一级的属性。 优势: 可以监听动态新增的属性; 可以监听删除的属性 ; 可以监听数组的索引和 length 属性; 2. 编译优化 优化编译和重写虚拟dom,让首次渲染和更新dom性能有更大的提升 vue2 通过标记静态根节点,优化 diff 算法 vue3 标记和提升所有静态根节点,diff 的时候只比较动态节点内容 Fragments, 模板里面不用创建唯一根节点,可以直接放同级标签和文本内容 静态提升 patch flag, 跳过静态节点,直接对比动态节点 缓存事件处理函数 3. 源码体积的优化 vue3移除了一些不常用的api,例如:inline-template、filter等使用tree-shaking 二. Vue 3.0 所采用的 Composition
  • 从 cuda 内核访问类数据成员 - 如何设计正确的主机/设备交互?(Accessing class data members from within cuda kernel - how to design proper host/device interaction?)
    问题 我一直在尝试将一些cuda/C代码转换为更面向对象的代码,但就我目前对 cuda 功能机制的理解而言,我的目标似乎并不容易实现。 在这种情况下,我也找不到很好的解释。 毕竟这可能是不可能的。 我有一个myClass类的全局对象,其中包含一个要填充到内核中的数组。 如何定义myClass 中的方法,以便数组和布尔成员从设备可见,然后可以将数组复制回主机? 我使用的是 cuda 7.5,我的卡的计算能力是 3.5。 这是描述情况的暂定结构: #include <cstdio> #include <cuda.h> #include <cuda_runtime.h> class myClass { public: bool bool_var; // Set from host and readable from device int data_size; // Set from host __device__ __host__ myClass(); __device__ __host__ ~myClass(); __host__ void setValues(bool iftrue, int size); __device__ void dosomething(int device_parameter); __host__ void export(); // completely
  • JS - 访问范围外的函数参数数组(JS - Accessing Function Parameters Array Outside of Scope)
    问题 简介:我多年来经常光顾 SO,但这是我的第一篇文章。 我已经为此进行了大量搜索,所以如果我忽略了它并且这是重复的,我很抱歉。 function actionFunction(values) { this.defaultValues = { valueX : 2.5, valueY : 5.5 }; this.valuesRanges = { xRange : { min : 0, max : 10 }, yRange : { min : 5, max : 10 } }; }; 显然我可以使用this.defaultValues.valueX等在函数本身内访问这些。我想知道的是如何在函数之外访问这些? 我知道这很可能是return或范围/提升问题,只是不知道如何解决它。 本质上,我需要得到actionFunction.defaultValues.valueX 。 另外,我想获取actionFunction.valuesRanges.xRange的值。 我已经尝试将这些作为数组和更多,但就是无法找出正确、正确的方法。 我有很多像这样结构的函数,我需要从中提取这些值,因此无需为$.extend()和其他基本功能引入 jQuery 的模块化方法会很棒。 编辑我发帖后意识到我忘了提到我正确地调用了var example = new actionFunction(); ,但由于某种原因
  • TypeScript--适合小白吧(应该)
    目录 1.概念1.2优势 2 使用2.1安装解析TS的工具包2.2 TS转换成JS过程 3第一个TS文件3.1步骤3.2简化执行TS的步骤 4.输出语句小结-TypeScript初体验 5.变量的使用5.1 基本的使用第一步:声明变量并指定类型第二步:给变量赋值 变量的使用小结 6.类型注解7.命名规范7.1 命名规则7.2命名规范7.3小结 8.数据类型8.1概括8.2数字类型8.3字符串类型8.4布尔类型8.5undefined和null类型8.6小结 9.运算符9.1概述9.2 算术运算符9.2.1加号的其他作用(字符串拼接)9.2.2加号引发的思考 9.3赋值运算符9.4自增自减运算符9.5比较运算符9.6逻辑运算符 10.条件运算符10.1 if 语句10.2else语句10.2.1if else语句练习 10.4 三元运算符 11.循环语句11.1break和continue11.1.1 break11.1.2 continue 12.数组12.1创建数组12.1.1 语法一 (推荐)12.1.2 语法二 (不推荐) 12.2 数组长度与索引12.2.1 数组长度12.2.2 数字索引12.2.3小结 12.3取值和存值12.3.1取值12.3.2存值 12.4 添加元素12.5 遍历数组 13.函数13.1 函数的使用小结 13.2 函数参数13.2.1
  • Delphi TRestRequest 数组参数(Delphi TRestRequest array parameter)
    问题 这可能是一个简单的。 我正在通过 Delphi XE6 使用 RestClient 组件访问 RESTFul 服务:TRestClient、TRestRequest、TRestResponse 和 THTTPBasicAuthenticator。 该服务需要我添加没有问题的参数: RestReq.Params.AddItem('param1', 'value1'); RestReq.Params.AddItem('param2', 'value2'); 使用服务器端的上述代码,它看起来像: { "param1":"value1", "param2":"value2" } 但是,当我需要发送一个数组参数时,我尝试: RestReq.Params.AddItem('param1', 'value1'); RestReq.Params.AddItem('param2', 'value2'); RestReq.Params.AddItem('param3', '[v1, v2, v3]'); 服务将拒绝它,因为第三个参数不是预期的数组。 这是正确的,因为它收到: { "param1":"value1", "param2":"value2", "param3":"[v1,v2,v3]" } 我知道这看起来很简单。 已切换 RestClient.ContentType,已尝试操作数组。
  • Accessing unknown number of commands (parameters) in batch file
    this one's a bit difficult to explain, but I'll do my best. I'm passing a list of directories into a batch file via a string array, which is created in Java and then passed into the .bat using Runtime.getRuntime().exec(commands). The trouble I am having is in regards to accessing the commands array, the size of which may vary from execution to execution. For example, during one run, "Commands" may contain the following: {"cmd.exe", "/C", "Start", "program.bat", "stringA", "stringB", "stringC"} The first four elements are used to call the batch file, so only strings A, B, and C are passed into