计算机c语言中什么是关系的投影运算

如题所述

第1个回答  2022-10-22

计算机c语言中什么是关系的投影运算

我举个具体例子,给定一个表如下:
姓名 年龄 职业
A B 29 程式设计师
B C 24 会计
C D 30 董事长
D E 32 经理
对姓名 职业投影的结果为
姓名 职业
A B 程式设计师
B C 会计
C D 董事长
D E 经理
投影(Projection)运算
投影是指将物件转换为一种新形式的操作,该形式通常只包含那些将随后使用的属性。通过使用投影,您可以构建依据每个物件生成的新型别。您可以对映属性,并对该属性执行数学函式。还可以在不更改原始物件的情况下对映该物件。简单地说,便是在关系中选择某些属性列。
下面一节中列出了执行投影的标准查询运算子方法。
方法
方法名
说明
C# 查询表示式语法
Visual Basic 查询表示式语法
更多资讯
Select
对映基于转换函式的值。
select
Select
Enumerable..::.Select
Queryable..::.Select
SelectMany
对映基于转换函式的值序列,然后将它们展平为一个序列。
使用多个 from 子句
使用多个 From 子句
Enumerable..::.SelectMany
Queryable..::.SelectMany
查询表示式语法示例
Select
下面的示例使用 C# 中的 select 子句或 Visual Basic 中的 Select 子句来对映字串列表中每个字串的第一个字母。
Visual Basic 复制程式码Dim words As New List(Of String)(New String() {"an", "apple", "a", "day"})
Dim query = From word In words _
Select word.Substring(0, 1)
Dim *** As New System.Text.StringBuilder()
For Each letter As String In query
*** .AppendLine(letter)
Next
' Display the output.
MsgBox( *** .ToString())
' This code produces the following output:
' a
' a
' a
' d
C# 复制程式码List<string> words = new List<string>() { "an", "apple", "a", "day" };
var query = from word in words
select word.Substring(0, 1);
foreach (string s in query)
Console.WriteLine(s);
/* This code produces the following output:
a
a
a
d
*/
SelectMany
下面的示例使用多个 from 子句(在 C# 中)或 From 子句(在 Visual Basic 中)来对映字串列表中每个字串中的每个单词。
Visual Basic 复制程式码Dim phrases As New List(Of String)(New String() {"an apple a day", "the quick brown fox"})
Dim query = From phrase In phrases _
From word In phrase.Split(" "c) _
Select word
Dim *** As New System.Text.StringBuilder()
For Each str As String In query
*** .AppendLine(str)
Next
' Display the output.
MsgBox( *** .ToString())
' This code produces the following output:
' an
' apple
' a
' day
' the
' quick
' brown
' fox
C# 复制程式码List<string> phrases = new List<string>() { "an apple a day", "the quick brown fox" };
var query = from phrase in phrases
from word in phrase.Split(' ')
select word;
foreach (string s in query)
Console.WriteLine(s);
/* This code produces the following output:
an
apple
a
day
the
quick
brown
fox
*/
Select 与 SelectMany
Select() 和 SelectMany() 的工作都是依据源值生成一个或多个结果值。Select() 为每个源值生成一个结果值。因此,总体结果是一个与源集合具有相同元素数目的集合。与之相反,SelectMany() 将生成单一总体结果,其中包含来自每个源值的串联子集合。作为引数传递到 SelectMany() 的转换函式必须为每个源值返回一个可列举值序列。然后,SelectMany() 将串联这些可列举序列以建立一个大的序列。
下面两个插图演示了这两个方法的操作之间的概念性区别。在每种情况下,假定选择器(转换)函式从每个源值中选择一个由花卉资料组成的阵列。
下图描述 Select() 如何返回一个与源集合具有相同元素数目的集合。
下图描述 SelectMany() 如何将中间阵列序列串联为一个最终结果值,其中包含每个中间阵列中的每个值。
程式码示例
下面的示例比较 Select() 和 SelectMany() 的行为。程式码将通过从源集合的每个花卉名称列表中提取前两项来建立一个“花束”。在此示例中,转换函式 Select<(Of <(TSource, TResult>)>)(IEnumerable<(Of <(TSource>)>), Func<(Of <(TSource, TResult>)>)) 使用的“单一值”本身就是一个值集合。这需要额外的 foreach(Visual Basic 中为 For Each)回圈,以便列举每个子序列中的每个字串。
Visual Basic 复制程式码Class Bouquet
Public Flowers As List(Of String)
End Class
Sub SelectVsSelectMany()
Dim bouquets As New List(Of Bouquet)(New Bouquet() { _
New Bouquet With {.Flowers = New List(Of String)(New String() {"sunflower", "daisy", "daffodil", "larkspur"})}, _
New Bouquet With {.Flowers = New List(Of String)(New String() {"tulip", "rose", "orchid"})}, _
New Bouquet With {.Flowers = New List(Of String)(New String() {"gladiolis", "lily", "snapdragon", "aster", "protea"})}, _
New Bouquet With {.Flowers = New List(Of String)(New String() {"larkspur", "lilac", "iris", "dahlia"})}})
Dim output As New System.Text.StringBuilder
' Select()
Dim query1 = bouquets.Select(Function(b) b.Flowers)
output.AppendLine("Using Select():")
For Each flowerList In query1
For Each str As String In flowerList

在C语言中,什么是算术运算?什么是关系运算?什么是逻辑运算?

算数运算:是加减乘除取模
关系运算是:大于,小于,等于,大于等于,小于等于,
逻辑运算:和,或,非。

算数运算是指能够完成算术运算功能的运算子 如+-*/ &% ++ --
关系运算符是比较两个值的大小关系 C语言的结果包括中 就是0和1 也就是假和真 运算子有如: > < <= >= == !=
逻辑运算子执行结果与关系表示式执行结果相同 成立1 不成立0 且(&&) 或(||) 非(!)
三者优先顺序为 算术 关系 逻辑 (由高到低)

在计算机C语言中,什么是单目运算子,什么是双目运算子?

单目运算子只有一个运算元,双目运算子有两个运算元
逻辑非运算子【!】、按位取反运算子【~】、自增自减运算子【++ --】、负号运算子【-】、型别转换运算子【(型别)】、指标运算子和取地址运算子【*和&】、长度运算子【sizeof】这些是单目运算子
双目运算子较多,+,-,*,/,=,== 等等
还有一个三目运算子,就是需要三个运算元?:
一楼回答有误,这个资料如何?

计算机c语言中 浮点数运算,是什么?

把浮点数理解成小数就可以了

计算机C语言中怎样进行求余运算

%表示求余,/表示取整

在计算机c语言中什么是实体和联络

实体=物件,联络=事件,面向物件语言的原始形态

计算机c语言中 a= i i =?

在使用a = i;时,i应当是已经定义并赋值的,所以i的值即为之前所赋的值。

计算机C语言与C++语言的关系?

c语言面向过程,c++面向物件。
例如:对于伫列来说,c语言里面必须自己写个queue.h(或其他)标头档案,包含伫列的实现。c++已经把伫列作为STL内建在类库中,只要包含相应的类库。
其实对于c来说,更适合作为作业系统底层的程式设计,linux本身就是少量汇编+大量c实现的,指标的操作更是高效。
而c++,更适合做一些上层的开发,它是在c基础上发展而来的,保留了指标的功能,但是现在和c已经大不相同了,对于面向物件,它有自己的特征:类、物件、继承、多型。
类:就是自己写好的描述物件的基础,可被继承
物件:类的例项
继承:可以继承,然后再实现复杂类,可多重继承
多型:一个方法、介面在不同的类中有不同的含义,也是面向物件的精髓

在计算机c语言中 什么是E-R图转换为关系模式?

E-R图 Entity Relationship Diagram 就是 关系图,提供了表示实体型别、属性和联络的方法,用来描述现实世界的概念模型。计算机程式里就是程式流程 图。
:baike.baidu./view/15236.htm
关系模式 就 是:
如果 (某某条件成立) 则 { 做。。。。。} 否则 { 做 。。。。。};
或者:
当 (某某条件成立){ 一直做 。。};
或者:
开关条件(条件){
满足case 1: ...;break;
满足case 2: ...;break;
满足case n: ...;break;
预设:。。。break;
}
或者 。。。。
对应 if 语句,while语句, switch语句,回圈语句,转向语句

相似回答