# How do you get all the first elements of a tuple in a struct array?

**URL:** https://discourse.julialang.org/t/how-do-you-get-all-the-first-elements-of-a-tuple-in-a-struct-array/89897
**Category:** General Usage
**Tags:** question, structarrays
**Created:** [November 7, 2022, 5:25pm UTC](https://discourse.julialang.org/t/how-do-you-get-all-the-first-elements-of-a-tuple-in-a-struct-array/89897 "2022-11-07T17:25:37Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![prittjam](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/prittjam/32/21267_2.png) [@prittjam](https://discourse.julialang.org/u/prittjam)
#### Post date: [November 7, 2022, 5:25pm UTC](https://discourse.julialang.org/t/how-do-you-get-all-the-first-elements-of-a-tuple-in-a-struct-array/89897/1 "2022-11-07T17:25:37Z")

</div>

```julia
adata = collect(1:10)
bdata = collect(31:40)
tmp2=StructArray((adata,bdata))

```

How can I get the numbers 1:10 as if they were an array from the StructArray?

---

<div class="post-metadata">

### Author: ![jling](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jling/32/212909_2.png) [@jling](https://discourse.julialang.org/u/jling)
#### Post date: [November 7, 2022, 5:34pm UTC](https://discourse.julialang.org/t/how-do-you-get-all-the-first-elements-of-a-tuple-in-a-struct-array/89897/3 "2022-11-07T17:34:17Z")

</div>

> [@prittjam](#):
>
> `(adata,bdata)`

Tuple is a very weird “struct”… usually you have real user defined struct

---

<div class="post-metadata">

### Author: ![SteffenPL](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/steffenpl/32/206270_2.png) [@SteffenPL](https://discourse.julialang.org/u/SteffenPL)
#### Post date: [November 7, 2022, 5:36pm UTC](https://discourse.julialang.org/t/how-do-you-get-all-the-first-elements-of-a-tuple-in-a-struct-array/89897/4 "2022-11-07T17:36:32Z")

</div>

Not directly replying to the question. But maybe it is better to use instead

```julia
tmp3=StructArray((;adata,bdata))

```

and then write

```julia
tmp3.adata # == 1:10

```

---

<div class="post-metadata">

### Author: ![jling](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jling/32/212909_2.png) [@jling](https://discourse.julialang.org/u/jling)
#### Post date: [November 7, 2022, 5:37pm UTC](https://discourse.julialang.org/t/how-do-you-get-all-the-first-elements-of-a-tuple-in-a-struct-array/89897/5 "2022-11-07T17:37:56Z")

</div>

oh yeah:

```julia
julia> getproperty(tmp2, 1)
10-element Vector{Int64}:
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10

julia> tmp2.:1
10-element Vector{Int64}:
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10

```

---

<div class="post-metadata">

### Author: ![aplavin](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aplavin/32/222056_2.png) [@aplavin](https://discourse.julialang.org/u/aplavin)
#### Post date: [November 8, 2022, 9:51am UTC](https://discourse.julialang.org/t/how-do-you-get-all-the-first-elements-of-a-tuple-in-a-struct-array/89897/6 "2022-11-08T09:51:24Z")

</div>

@jling’s solution is the most concise while remaining intuitive and general: component access in structarrays is done with property access.  
But if you want something more explicit, then `StructArrays.components(tmp2)[1]`.
